我很难在place...but中完成我想要的快速验证,我认为由于我选择的名称数组,它没有得到正确的验证,我也不知道该如何做。
它应该如何工作:-如果选中了当天的stat假日框&如果为当天选择了任何Lieu时间,请发出警告错误并停止表单提交。
我的小提琴:http://jsfiddle.net/4bgYj/3/
我的jquery:
$(document).ready(function() {
$(document).on('submit', 'form', function(e) {
var lieuhrs = $(".lieutimehours").val();
$('.lieutimehours').each(function(i, obj) {
if ($("#statholidaycheck").is(":checked") && lieuhrs > 0) {
alert("cannot process: " + lieuhrs);
return false;
}
}
});
}); 发布于 2014-06-23 16:02:07
让我为您的问题提供一个更方便用户的方法:
如果选择了stat,只需禁用lieu hours的表单输入即可。
这样,您就不必在提交表单之前检查任何内容,用户也不能意外地在lieu hours中选择一个值。
它仍然需要更新为您的标记,但基本思想是:
var stat = $('.stat');
stat.change(function() {
var e = $(this);
var f = e.parent().find('.lieu');
if (e.is(':checked')) {
f.prop('disabled', true);
} else {
f.prop('disabled', false);
}
});Demo
买前试一试
发布于 2014-06-23 15:54:56
首先,你错过了一个);.
$(document).ready(function() {
$(document).on('submit', 'form', function(e) {
var lieuhrs = $(".lieutimehours").val();
$('.lieutimehours').each(function(i, obj) {
if ($("#statholidaycheck").is(":checked") && lieuhrs > 0) {
alert("cannot process: " + lieuhrs);
return false;
}
}); // missing ); here. <--------------
});
});添加后尝试它,您会发现它适用于第一个复选框。但是选择一个不同的复选框,它就会失败。在HTML中,您将希望使用唯一的ids来引用元素。我要做的是修改HTML,在TR标记上放置一个css类,然后查看包含的元素。
<tr class='line'>
<td> <input type='checkbox' class='isHoliday'/> </td>
<td> <select class='lieuHours'>options...</select> </td>
</tr>在你的剧本里..。
$(document).ready(function() {
$(document).on('submit', 'form', function(e) {
$('.lines').each(function(i, obj) {
var lieuHours = $(this).find(".lieuHours").val();
if ($(this).find(".isHoliday:checked") && lieuHours > 0) {
alert("cannot process: " + lieuhrs);
return false;
}
}); // missing ); here. <--------------
});
});发布于 2014-06-23 15:59:15
您没有正确地处理这个问题,选择器不应该是全局的,而是特定于您正在执行的循环:
$(document).ready(function() {
$(document).on('submit', 'form', function(e) {
$('.lieutimehours').each(function(i, obj) {
var lieuhrs = $(this).val();
if ($(this).closest('tr').find('#statholidaycheck').is(":checked") && parseFloat(lieuhrs) > 0) {
alert('works');
return false;
}else{
alert('fail')
}
});
});
}); https://stackoverflow.com/questions/24370081
复制相似问题