【发布时间】:2014-09-16 11:55:37
【问题描述】:
在互联网上进行了长时间的研究后,我即将放弃,假设你是我最后的希望。我的问题:我正在为我的公司实施时间表表格。这种形式是动态的,因为您可以在一天内进行多项活动。字段(包含在 PHP 页面中)是:
- 天(文本字段)
- 小时(下拉)
- Notes(员工可以在其中写下当天笔记的文本字段)
列出的所有字段都位于字段集中的一行中。在字段集的顶部,我放置了一个按钮,单击它我将添加另一行,其中包含之前列出的数据。现在,在提交到后端之前,我当然想放一些验证规则,如下所示:
- 字段 DAY 必须是必需的(这是我在 DB 中的键,我添加了一个 DatePicker 插件)
- 一整天的小时总和不能超过 8 小时
我尝试使用 Jquery Validate,但似乎有两个问题:
- 它无法以某种方式处理进入脚本 php 的数据数组,该脚本将在 DB 上写下(例如,提交的天数将以数组的形式到达后端,我之所以这样决定,是因为天数可以记录在提交之前是未知的)
- 它只在第一行添加控件
我已经尝试(正如我在其他帖子中阅读的那样)在创建新行后添加规则,但是,在这种情况下,只有当我将光标放在其中时,它才适用于其他字段,我离开该字段空白,然后我在该字段之外单击。
我附上我的代码,任何帮助将不胜感激!
来自意大利的问候。
<script type="text/javascript">
$(document).ready(function() {
var i = 0;
//fadeout selected item and remove
$('.remove').live('click', function() {
$(this).parent().fadeOut(300, function(){
$(this).empty();
return false;
});
});
$('a#add').click(function() {
i++;
var options = '<p>Day <input type="text" id = "Day'+i+'" class = "Day" name="day[]"> </select> hours<select id = "hours'+i+'" class = "hours" name="hours[]"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option></select> Notes <input type="text" id="Note'+i+'" class = "Note" name="note[]"><a href="#" class="remove"><img src="images\\remove.png" height="20" width="20"></img></a></p>';
$(options).fadeIn("slow").appendTo('#extender');
});
$('.Day').live('click', function() {
$(this).datepicker('destroy').datepicker({
changeMonth: false,
changeYear: false,
stepMonths: false,
dateFormat: "dd-mm-yy",
showOn:'focus'}).focus();
});
});
</script>
这是附加动态字段的地方
<form name="rec_abs" method="post" action = "rec_on_db.php">
<fieldset>
<legend>Timesheet</legend>
<div id="extender"></div>
<p><a href="#" id="add"><img src="images\add.png" alt="" border=3 height=20 width=20></img></a> </p>
</fieldset>
</form>
<input type="submit" value="Send your timesheet"></input><br>
【问题讨论】:
-
如果您已经“尝试过 jQuery Validate”但失败了,请向我们展示失败的尝试。因为您对问题的描述对于插件的默认行为没有意义。
标签: javascript jquery forms jquery-validate