0

我有一个输入字段,通过 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 类。

截至目前,无论是否应用了 .noEnterSubmit 类,按 Enter 将不会执行 onsubmit="" 中的脚本。

这是我最终使用的:

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

2 回答 2

1

如果.noEnterSubmit在您进行初始绑定时出现在输入上,则无论该类是否存在,它将始终绑定到该输入。在 keyup 发生后,您需要检查类,如下所示:

$('#faq_dup_search').keypress(function(e){
    if($(this).hasClass('noEnterSubmit') && e.which == 13){
        return false;
    }
});
于 2013-01-04T16:51:46.237 回答
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>
于 2013-01-04T16:55:06.670 回答