如何从javascript表单动作转换为jquery

How to convert from javascript form action to jquery?

本文关键字:转换 jquery 表单 javascript      更新时间:2023-09-26

我有一个代码javascript的动作形式:

<form name="myform" onsubmit="return OnSubmitForm();" method="post">
<input type="text" value="" id="type" />
<input type="submit" value="submit" />
</form>

和javascript:

function OnSubmitForm() {
    var type = document.getElementById('type').value;
    if(type == '1') {
        document.myform.action = "index.php?type=1";
    }
    if(type == '2') {
        document.myform.action = "index.php?type=2";
    }
    return false;
}

如何将这个javascript转换为jquery,请这个想法?

$("form[name='myform']").submit(function() {
    this.action = "index.php?type=" + this.type.value;
    return false;
});
  • form[name='myForm']选择名称为myForm的表单。
  • 调用.submit(function () { ... })绑定submit事件的事件处理程序。
  • 函数内部,this指的是表单。

示例: http://jsfiddle.net/4SZrH/(查看Firebug或类似的表单action)。

首先注意这个函数总是返回false,所以表单永远不会提交。但是要回答你的问题,你可以使用jQuery的submit事件

$("form[name='myform']").submit(function(){
    var type = this.type.value;
    if (type === '1' || type === '2')
        this.action = "index.php?type=" + type;
    return false;
});

或者更简单:

$("#myForm").submit(OnSubmitForm);

还要注意,对于dom级别0的事件处理程序,不希望将返回语句内联。以后只要做

<form name="myform" onsubmit="OnSubmitForm();" 

OnSubmitForm返回真或假

最后,请注意,在JavaScript中,按照惯例,以大写字母开头的函数表示构造函数。考虑将此函数重命名为onSubmitForm