我正在使用表单提交并对jqtransformed项目进行验证。奇怪的是,提交控件只能工作一次。如果我在第一次尝试时提交表格正确,则会发送该值。但如果我不这样做,它会提醒我,再也不会提交。
这是我的样本作品。
function jqkontrol(){
var alis = jQuery("#alis_yeri div.jqTransformSelectWrapper span").text();
var donus = jQuery("#donus_yeri div.jqTransformSelectWrapper span").text();
if(alis!='Alış Yeri Seçiniz' && donus!='Dönüş Yeri Seçiniz'){
jQuery("form#rezervasyon").submit();
return true;
}else{
alert('Alış noktası seçiniz.');
jQuery("form#rezervasyon").submit(function (e) {
e.preventDefault();
});
return false;
};
}
<form>
<input type="image" src="http://www.guiderentacar.com/yeni/tema/bg_devamet.png" onclick="jqkontrol();" />
</form>
以下是实时版:Live Demo of the Source.
答案 0 :(得分:3)
这段代码:
jQuery("form#rezervasyon").submit(function (e) {
e.preventDefault();
});
为表单上的“submit”事件建立一个事件处理程序。处理程序是永久的;好吧,它是永久的,直到你明确地拿走它,你不这样做。因此,如果您有错误,则设置该处理程序,然后从那时起您将永远无法提交表单;该处理程序将始终阻止默认操作。
不要这样做,而是执行以下操作(我认为):
更改提交图片的“onclick”处理程序:
<input type="image" src="http://www.guiderentacar.com/yeni/tema/bg_devamet.png" onclick="jqkontrol(event);" />
更改验证码:
function jqkontrol(ev){
ev = ev || window.event; // for IE
var alis = jQuery("#alis_yeri div.jqTransformSelectWrapper span").text();
var donus = jQuery("#donus_yeri div.jqTransformSelectWrapper span").text();
if(alis!='Alış Yeri Seçiniz' && donus!='Dönüş Yeri Seçiniz'){
return true;
}else{
alert('Alış noktası seçiniz.');
if (ev.preventDefault) ev.preventDefault();
ev.returnValue = false; // for old IE
};
}