2013-01-04 66 views
0

我有一個輸入字段,通過keyUp()上的AJAX針對數據庫進行驗證。切換「輸入提交」

如果輸入的文字符合要求,則啓用。

我也想切換輸入文字輸入框的提交。

<div id="faq_dupe" class="center-modal"> 
    <form id="faq_form" onsubmit="AJAXsendData(); hideModal('faq_dupe'); return false;"> 
     <input id="faq_dupe_search" type="text" placeholder="e.g. 00AA1" class="noEnterSubmit"/> 
     <button id="faq_dupe_img" type="submit" disabled> 
      <img src="/img/val-no.png"/> 
      <div>Submit</div> 
     </button> 
    </form> 
    <script type="text/javascript"> 
     $('.noEnterSubmit').keypress(function(e){ 
      if (e.which == 13) return false; 
     }); 
    </script> 
    <script type="text/javascript"> 
     $('#faq_dupe_search').keydown(function() { 
      var faqimg = '<img src="/img/load-a-40px.gif"/><div>Submit</div>'; 
      document.getElementById('faq_dupe_img').innerHTML = faqimg; 
     }); 
    </script> 
    <script type="text/javascript"> 
     $('#faq_dupe_search').keyup(function() { 
      AJAXvalFAQid($('#faq_dupe_search').val()); 
     }); 
    </script> 
</div> 

我有AJAXvalFAQid()添加和刪除.noEnterSubmit類。

從現在開始,不管是否應用.noEnterSubmit類,都不會執行onsubmit =「」中的腳本。

這裏是我ened起來使用:

<script type="text/javascript"> 
    function onsubmit(event) { 
     if(noEnterSubmit === true){ 
      event.preventDefault(); 
     }else{ 
      sendData(); 
      hideModal('faq_dupe'); 
      return false; 
     } 
    } 
</script> 
+0

更改的行爲()'採取弗裏茨麪包車坎彭的建議。 –

回答

1

只需要一個提交函數就容易了。它看起來是這樣的:

function onsubmit(event) { 
    if (input_is_valid()) { 
     // all is well, let the event continue 
    } else { 
     event.preventDefault(); // block the submit 
     show_errors(); 
    } 
} 

在`AJAXvalFAQid
<form id="faq_form">..</form> 
<script type="text/javascript"> 
    $("#faq_form").submit(onsubmit); 
</script> 
+0

這個和@idrumgood答案的組合就是我所需要的。 –

+0

請參閱上文,瞭解我最終做的事情。 –

+1

我是一個強大的對手,在邏輯中使用'hasClass'(或一般'hasClass',它是一個_codesmell_)。如果你正在做一個'addClass'的地方,爲什麼不保留一個布爾標誌來表示同樣的事情? – Halcyon

1

如果.noEnterSubmit上存在輸入時,你做你的初始綁定,它都會被綁定到輸入,該類是否不存在。你需要在keyup發生後檢查類,如下所示:

$('#faq_dup_search').keypress(function(e){ 
    if($(this).hasClass('noEnterSubmit') && e.which == 13){ 
     return false; 
    } 
}); 
+0

謝謝,我沒有想到它會永久綁定。 'onclick =「」'中的腳本將被調用。 –