0

我有一个弹出窗口,里面有一个表格。它已经出来并可以提交了,这里是弹出框的代码

<div id="popover-head" class="hide">Add new subject</div>
<div id="popover-content" class="hide">
     <form class="form-inline" id="pop-form" method="POST" action="../admin/module_add_subject.do">
          <div class="form-group">

          <!-- This input is what i'm talking about -->
          <input type="text" name="subjectName" id="subject-name" required="required" pattern="^[\S\s]{3,25}[A-z]+$" title="Only accept alphabet characters and length is minimum of 3 and max of 25 " placeholder="Subject name.."/>

          <button class="btn btn-primary" type="button" id="add-subject" ><i class="icon-white icon-ok"></i></button>

       </div>
       <p></p>
       <p style="color:red" id="error-message"></p>
     </form>
</div>

上面的输入我确定正则表达式正在工作。当我将其更改buttonsubmit所需时,它工作得非常好,但是当我将其改回时,button它就不再工作了。

我的submit按钮之所以是 a 是type="button"因为这段代码:

$(document).on('click', '#add-subject', function(e) {
     $.post('../admin/module_check_subject.do', { subjectName: $('#subject-name').val() },
    function( data ) {
        // if data from the database is empty string
        if( $.trim( data ).length != 0 ) {
        // hide pop-over
        $('#popover').popover('hide');
        // submit form
        $('#pop-form').submit();
        } else {
        $('#error-message').text('Subject already exist.' );            
        }           
    }
     })
    .fail( function () {
                bootbox.alert('Failed to check, please try again later.');
    });
});

我正在做的是提交时,如果 text 文本框中的输入存在于数据库中,我将首先在我的数据库中签出,然后如果 text 存在,则数据库停止提交表单并在 p 标签处显示错误

4

1 回答 1

0

通过表单提交算法submit(),使用该方法提交表单时不进行验证。这个想法或多或少是,当您提交带有脚本的表单时,您的脚本还应该执行任何认为必要的检查。

在您的脚本中,您可以调用该checkValidity()方法来执行正常的验证,如果表单是使用提交按钮提交的,那么该验证将被执行。请注意,它仅执行静态验证。

于 2013-11-03T14:19:43.347 回答