我在jQuery函数下面使用来验证div中的所有字段。我的问题是,即使我填满所有字段,它总是返回false。
function validate(id) {
//:text, :checkbox, select, textarea
var isFormValid = true;
var div = $(id);
$(div).find(":text, select").each(function () {
if (this.value == "" && !$(this).hasClass("no-req")) {
$(this).addClass("required");
isFormValid = false;
$(this).focus();
}
else {
$(this).removeClass("required");
}
});
if (!isFormValid) {
alert("Please fill all the higlighted fields!");
}
return isFormValid;
}
在Asp.net按钮客户端上单击我正在使用此代码
<asp:Button ID="btnSave" runat="server" Text="Save" class="btn btn-success" OnClientClick="javascript: return validate('#tdAdd');" OnClick="btnSave_Click" />
答案 0 :(得分:0)
改变这个:
$(div).find(":text, select").each(function () {
if (this.val() == "" && !$(this).hasClass("no-req")) {
要:
div.find(":text, select").each(function () {
if ($(this).val() == "" && !$(this).hasClass("no-req")) {
答案 1 :(得分:0)
为什么不使用内置的aspnet Custom Validator?然后,您可以搜索特定div
内的所有TextBox,并返回Validator值。
<div id="validateTheseControls">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
ClientValidationFunction="validateControlsInDiv" ErrorMessage="Not all fields are filled"></asp:CustomValidator>
</div>
<script type="text/javascript">
function validateControlsInDiv(sender, element) {
var isValid = true;
$('#validateTheseControls input[type="text"]').each(function () {
if ($(this).val() == "") {
isValid = false;
}
});
element.IsValid = isValid;
}
</script>