我面临远程验证问题。当我点击提交按钮而不关注文本框时,它会调用远程ajax进行验证,当我按下第二次提交按钮时,它将被提交给表单。 无法在同一次点击中使用。如果我专注于文本框并点击提交,那么它的工作正常。
$("#submit").click(function(e){
if($('#add_sub_seva_form').valid())
{
if($("#hid_sub_head_id").val()==$("#hid_head_id").val()){
$("#add_sub_seva_form .alert-danger").html("Head Name and Sub Head Name should not be same.");
$("#add_sub_seva_form .alert-danger").show();
$("#add_sub_seva_form .alert-danger").delay(3000).fadeOut(400);
e.preventDefault();
return false;
}
sub_length=$(".e_sub_head").length;
if(sub_length>0){
for(var i=2;i<sub_length+2;i++){
if($("#hid_sub_head_id_"+i).val()=="")
{
$("#add_sub_seva_form .alert-danger").html("Please Enter Sub Head Name "+i);
$("#add_sub_seva_form .alert-danger").show();
$("#add_sub_seva_form .alert-danger").delay(3000).fadeOut(400);
// alert("Please Enter Sub Head Name "+i);
e.preventDefault();
return false;
}
}
}
var msg=confirm('Are you Sure?');
if(msg===true){
$('#add_sub_seva_form').submit();
}
else{
e.preventDefault();
}
}
else{
e.preventDefault();
}
});
$("#add_sub_seva_form").validate({
rules:{
seva_eng:{
required:true,
remote: {
url: "check-seva.php",
type: "post", data: {
hid_seva_eng: function() {
return $('#hid_seva_eng').val();
}
}
}
},
seva_guj:{
required:true,
remote: {
url: "check-seva.php",
type: "post", data: {
hid_seva_guj: function() {
return $('#hid_seva_guj').val();
}
}
}
},
event_name:{
required:true
},
head_id:{
hid_head:true
},
sub_head_id:{
hid_sub_head:true
}
},
messages:{
seva_eng:{
required:'Please Enter Seva Name(Eng.)',
remote:'Seva Name is already exist'
},
seva_guj:{
required:'Please Enter Seva Name(Guj.)',
remote:'Seva Name is already exist'
},
event_name:'Please Select Event Name'
}
});
答案 0 :(得分:0)
我在窗口加载时做了一些临时解决方案我专注于文本框。
window.onload = function() {
$('input[type="text"]').focus();
};
这是一个棘手的解决方案。它不可靠。
答案 1 :(得分:0)
onfocusout
将从文本框中删除焦点,并允许首次点击时提交表单。我有同样的问题并通过在我的验证中添加以下内容来解决它:
$("#myform").validate({
onfocusout: false
});
了解详情