javascript - 更改表单的 onsubmit 属性来提交是一个好习惯吗?

标签 javascript html ajax jquery

我有这样的代码

<form onsubmit="return false;" id="myform">
<input type="text" id="data"/>
<input type="submit" value="Submit" id="submitForm" />
</form>

<script>
$(document).ready( function() {

    var form = $('#myform');

    var result = form.find('#data').val() != "";

    if ($.data( form, 'validated' ) && result) {
        return true;
    } 
    else
        $.data( form, 'validated', false );      

    $.post( 'http://myweb/action', form.serialize(), function (data) {
        var json_result = $.parseJSON(data);
        if (result && json_result.is_valid) {
          $.data( form, 'validated', true );
          form.attr('onsubmit', 'return true;' );
          form.submit();
        } 
        else {
          alert( 'There is an error in the form data!' );
        }
    }

});
</script>

这是一个好的做法吗?

最佳答案

仅供引用。无论你想做什么,这种风格

form.attr('onsubmit', 'return true;' );

不好,因为直接设置 onSubmit 属性会杀死可能绑定(bind)到 submit 事件的其他处理程序。

关于javascript - 更改表单的 onsubmit 属性来提交是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162535/

相关文章:

javascript - CORS 预检响应错误

php - 我如何使用 php 将我的记录集填充到我的 javascript 中

javascript - 为什么 JQuery 在 IE 和 FireFox 中不起作用?

javascript - 将 JSON 转换为 HTML

c# - 如何在asp.net自动完成文本框中用分号分隔文本框中的多个值

javascript - 在执行 Ajax 调用之前,对 DOM 的更改应该是可见的

javascript - jQuery 的 Google.load() - 不适用于 DataTables.net

javascript - HTML 发布数组 仅发布第一个值

html - HTML 列表框(不是容器)上的水平滚动?

javascript - 使用 jquery 获取 div 元素中的值列表