2011-12-29 12 views
1

は、私はアクションフォームのコードJavaScriptを持っている:jqueryへの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; 
} 

、jqueryのにこのアイデアを、このJavaScriptをしてください変換する方法は?

+2

jQuery ***は*** Javascriptを使用しています。何が欲しいの? '.prop( 'action'、 'index.php?type = 1')'多分? – Paulpro

答えて

4
$("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をチェックしてください)。

+0

私はmyformが名前であり、あなたの答えのおかげでIDではなかったことに気づいたので、+1 –

+0

@AdamRackis:Thanks ':)' –

1

この関数は常にがfalseを返すので、フォームは送信されません。

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

はまた、DOMレベル0のイベントハンドラのために、あなたは復帰を望んでいん、ということに注意してください:しかし、あなたの質問に答えるために、あなたは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; 
}); 

以上単にを使用することができますステートメントインライン。将来的にはちょうど

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

を行うと、JavaScriptで、慣例により、大文字で始まる関数はコンストラクタを表すことに注意して、最後に

真または偽OnSubmitFormリターンをしましょう。 onSubmitForm

関連する問題