1

我正在使用对 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>

这是现场版本:源的现场演示。

4

1 回答 1

3

这段代码在这里:

    jQuery("form#rezervasyon").submit(function (e) {
        e.preventDefault();
    });

为表单上的“提交”事件建立一个事件处理程序。处理程序是永久的;好吧,它是永久性的,直到你明确地把它拿走,你没有。因此,如果您有错误,则设置该处理程序,然后从那时起您将永远无法提交表单;该处理程序将始终阻止默认操作。

不要这样做,而是执行以下操作(我认为):

  1. 更改提交图像的“onclick”处理程序:

    <input type="image" src="http://www.guiderentacar.com/yeni/tema/bg_devamet.png" onclick="jqkontrol(event);" />
    
  2. 更改验证码:

    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
       };
    }
    
于 2013-01-04T14:36:29.893 回答