javascript - 如何使用 onClick JQuery 函数运行 HTML 验证?

标签 javascript html jquery validation constraint-validation-api

我正在尝试在我的项目中实现 HTML 验证。看起来非常有帮助并且易于使用。然而,只有当输入类型设置为submit时,此验证才会起作用。那部分给我带来了问题。我有多个表单,并且在所有“提交”按钮上使用相同的 name 属性。所以我的函数如下所示:

HTML:

<form name="myForm" id="myForm" method="POST" action="#">
    <fieldset>
        <legend>User Info</legend>
        <div class="formItem">
            <label for="last_name">Last Name:</label>
            <input type="text" name="frmst_lname" id="frmst_lname" value="" size="20" maxlength="30" title="Maximum length 30 characters." required/>
        </div>
        <div class="formItem">
            <label for="first_name">First Name:</label>
            <input type="text" name="frmst_fname" id="frmst_fname" value="" size="20" maxlength="30" title="Maximum length 30 characters." required/>
        </div>
        //Same button I have on the other forms. Only ID is different.
        <div class="formItem">
            <p align="center"><input type="button" name="frmSubmit" id="frmstSubmit" value="Submit"></p>
        </div>
    </fieldset>
</form>

jQuery:

$('input[name="frmSubmit"]').on('click', function(){
    var frmID = $(this).closest('form').prop('id'); //take form ID
    var processVal = $(this).attr('data-process'); //which process will be executed Add or Edit
    //Here I would like to check form validation then process AJAX call
});

到目前为止,我无法让 HTML 验证与 onClick 函数一起使用。我尝试使用 checkValidty() 但我的表单上的必填字段从未显示消息。我想知道 HTML 是否适合我的项目以及如何进行验证以使用 onClick 函数?

最佳答案

如果您希望 HTML 验证起作用,请将按钮类型更改为提交。

<input type="submit" name="frmSubmit" id="frmstSubmit" value="Submit">

如果您想进行一些自定义验证,请添加 onsubmit 属性。

<form method="POST" action="form-handler" onsubmit="return checkForm(this);">
<p>Input: <input type="text" size="32" name="inputfield">
<input type="submit"></p>
</form>

<script type="text/javascript">

  function checkForm(form)
  {
    if(!condition1) {
       alert("Error: error message");
       form.fieldname.focus();
       return false;
    }
    if(!condition2) {
       alert("Error: error message");
       form.fieldname.focus();
       return false;
    }
    ...
    return true;
  }

</script>

参见:http://www.the-art-of-web.com/javascript/validate/

如果您想使用带有 HTML 验证的 AJAX 调用,请尝试在提交函数中使用 e.preventDefault()

$('#myForm').on('submit',function(e) {
    e.preventDefault();

    $.ajax({
        url: url,
        type: 'post',
        data: data,
        success: function (data) {
            if (data.success) {

            } else {

            }
        }
   });
})

$(document).on('submit','#myForm',function(e) {
  e.preventDefault();

  $.ajax({
        url: url,
        type: 'post',
        data: data,
        success: function (data) {
            if (data.success) {

            } else {

            }
        }
   });
})

查看此JSFiddle对多种表单使用一个 on Change 函数并获取 id 属性。

关于javascript - 如何使用 onClick JQuery 函数运行 HTML 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405633/

相关文章:

javascript - 更改 dojox.image.Lightbox 的速度

javascript - 什么时候在 Javascript 中使用 MVC?

javascript - 数字框对齐

jquery - 2列;多 Accordion 面板

javascript - 将 javascript 代码转换为 html 输出?

javascript - 插入笑脸文字并播放图像

javascript - Vue v-bind 的工作原理

javascript - 如果某些手机的分辨率高于计算机,我如何使用@media 查询?

Jquery addClass 适用于宽度和高度,但不适用于背景和颜色

javascript - 单击事件触发后如何删除事件处理程序?