我有一个输入字段,通过keyUp()上的AJAX对数据库进行验证。
如果输入的文字令人满意,则启用a。
我还要为文本输入字段切换提交输入。
<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类。
截至目前,点击输入将不会执行onsubmit =&#34;&#34;中的脚本是否应用.noEnterSubmit类。
以下是我最终使用的内容:
<script type="text/javascript">
function onsubmit(event) {
if(noEnterSubmit === true){
event.preventDefault();
}else{
sendData();
hideModal('faq_dupe');
return false;
}
}
</script>
答案 0 :(得分:1)
如果在执行初始绑定时输入中存在.noEnterSubmit
,则无论该类是否存在,它都将始终绑定到该输入。您需要在密钥发生后检查类,如下所示:
$('#faq_dup_search').keypress(function(e){
if($(this).hasClass('noEnterSubmit') && e.which == 13){
return false;
}
});
答案 1 :(得分:1)
只有一个提交功能更容易。它看起来像这样:
function onsubmit(event) {
if (input_is_valid()) {
// all is well, let the event continue
} else {
event.preventDefault(); // block the submit
show_errors();
}
}
与
<form id="faq_form">..</form>
<script type="text/javascript">
$("#faq_form").submit(onsubmit);
</script>