我正在尝试在asp.net页面中进行必要的验证。
我有多个控件将被隐藏和显示。
像checkboxlist
,dropdownlist
,multiselectedlistbox
这样的控件。
我正在使用一个名为required的css类附加到所有这些控件来检查验证。
我正在尝试检查每个控件是否有值,但我的代码正在检查每个控件中的每个选项。
我真的没有找到一种方式而不是jquery专家只是一个新手...
以下是我的代码,任何人都可以提出任何想法......
$("input[type='submit']").click(function () {
if ($(this).val() != 'Back') {
var names = [];
var info=" ";
$('.required input').each(function () {
var control = $(this);
if (control.is(':enabled')) {
names[$(this).attr('name')] = true;
}
});
$('.required option').each(function () {
var control = $(this);
if (control.is(':enabled')) {
names[$(this).attr('name')] = true;
}
});
for (name in names) {
var radio_buttons = $("input[name='" + name + "']");
if ((radio_buttons.filter(':checked').length == 0) ||(radio_buttons.filter(':selected').length == 0)) {
info += radio_buttons.closest("table").find('label').html()+"</br>";
}
}
if (info != " ") {
$("#validation_dialog p").html(info);
$("#validation_dialog").dialog({
title: "Validation Error!",
modal: true,
resizable: false,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
return false;
}
}
});
这是一个小提琴......
答案 0 :(得分:0)
我认为你想要的是:
$(".required input[type='radio']:checked").each(function(){
});
而不是:
$(".required option").each(function(){ ... });
答案 1 :(得分:0)
您好我对您的小提琴进行了一些更改,基本上我检查了每列中的输入,然后我将它们添加到您的名字数组中。
使用
$('table.required:eq(0) input:checked')
如果返回的数组的长度为0,那么你可以获得在第一列上检查的所有输入,然后没有检查输入,对于其他的,我可以使用相同的过程。
是的,那些输入名称很奇怪。
检查这个小提琴