【发布时间】:2017-10-02 07:09:29
【问题描述】:
我想根据 jquery 验证插件有条件地根据元素的 blur 事件上的 ajax 响应应用错误类和验证错误消息。我得到来自 ajax 的 1 或 0 的响应。如果我在“数据”中得到0,我会显示如下验证消息,
$("#txtFinalGSTNo").rules("add", {
messages: "Invalid Provisional GST Number"
});
但没有显示消息。而'bootbox.alert(“无效的临时GST编号”);'正在显示警报消息。因为规则没有被申请消息。
我已经创建了如下的 jquery,并添加了错误消息来显示。
$(".gstFild").blur(function () {
var txtPanNo = $("#txtCompanyPanNo").val();
var txtGstNo = "";
if ($("#ddlCountry").val() == 180 && $("#CheckboxGST").prop("checked") == true) {
if ($("#hiddenProType").val() == "1") {
txtGstNo = $("#txtProvisionalGSTNo").val();
}
else if ($("#hiddenProType").val() == "2") {
txtGstNo = $("#txtFinalGSTNo").val();
}
}
$.ajax({
type: "POST",
url: "@Url.Action("CheckGSTValidate", "StaticPage")",
data: { SelectedStateValue: $("#ddlState").val(), txtPanNo: txtPanNo, txtGstNo: txtGstNo },
success: function (data) {
if (data == 0) {
if ($("#hiddenProType").val() == "1") {
$("#txtFinalGSTNo").rules("add", {
messages: "Invalid Provisional GST Number"
});
//bootbox.alert("Invalid Provisional GST Number");
}
else if ($("#hiddenProType").val() == "2") {
$("#txtFinalGSTNo").rules("add", {
messages: "Invalid Final GST Number"
});
//bootbox.alert("Invalid Final GST Number");
}
}
else {
if ($("#hiddenProType").val() == "1") {
$("#txtProvisionalGSTNo").rules("remove", "messages");
}
else if ($("#hiddenProType").val() == "2") {
$("#txtFinalGSTNo").rules("remove", "messages");
}
}
}
});
});
html代码块如下,
<div class="three-column-form">
<div class="business-details-row">
<div class="left-column">
<div class="chkbox-wrap">
<input id="CheckboxGST" type="checkbox" name="IsGstApplicabler" disabled="disabled">
<label class="indeschead" for="CheckboxGST">GST APPLICABLE</label>
</div>
</div>
<div class="left-column margin">
@if (ViewBag.GstProStatus == 1)
{
<div class="form-row">
<label><span>*</span>Provisional GST no.</label>
<input type="text" class="gstFild" id="txtProvisionalGSTNo" disabled="disabled" name="ProvisionalGSTNo" data-validation="required">
</div>
}
else
{
<div class="form-row">
<label><span>*</span>Final GST no.</label>
<input type="text" class="gstFild" id="txtFinalGSTNo" disabled="disabled" name="FinalGSTNo" data-validation="required">
</div>
}
</div>
<input type="hidden" name="hiddenProvisopnalTp" id="hiddenProType" value="@ViewBag.GstProStatus" />
</div>
</div>
【问题讨论】:
-
你能展示一下
data里面有什么吗? -
那你有什么问题?什么不工作?
-
@HimanshuUpadhyay 来自 ajax 的响应为
data是1或0 -
@StephenMuecke 验证消息在显示警报消息时未显示。
-
为什么不使用框架中内置的带有
ValidationMessageFor()的jquery 客户端验证?
标签: jquery ajax jquery-validate