2011-06-28 9 views
0

複数の送信ボタンがあるフォームがあります。これらのボタンの1つがクリックされると、選択されたアクションを確認する確認ポップアップが表示されます。彼がOKを押すと、フォームの投稿を許可します。そうでない場合は、キャンセルします。JQuery(IE)を使用して送信ボタンをクリックしたフォーム提出をキャンセルします

問題は、サブミットハンドラで使用する正しいセレクタがわからないということです。ここで私は現在、私は未定義の結果を得るものです:

$("form").submit(function() { 
    if ($("input[type=submit][clicked=true]").val() == "New") { 
     // TODO - this isn't getting called. 
    } 
} 

私はどこかにこのコードは、誰かのために働いていたことを読んを、それはIEで私のために動作しません。

何か助けていただければ幸いです。ありがとう!

答えて

0

いくつかは、私が提案することを約だものと合意することができる - まあいいけど。

実際の送信ボタンをクリックしてモーダルダイアログを表示する代わりに、最初のボタンでポップアップを起動させてから実際の送信ボタンを押してください。キャンセルボタンはモーダルを閉じるだけです。

<form> 
<input type="text" value="something" /> 

<button id="submitModal" value="Submit"> 

<div style="display:none;" class="modal"> 
<input type="submit" name="realSubmit" /> 
<button id="cancel" value="cancel" /> 
</div> 

</form> 

そして、jqueryの書き込みでのようなもの:ここ

$('button#submitModal').click(function() { 
    //open your modal dialogue 
}); 

$('button#cancel').click(function() { 
    //close modal 
}); 

、提出は、提出するために特別なJavaScriptを必要としません。

+0

この場合、フォームのサブミットイベントではなく、ボタンのクリックイベントをフックするだけの方がはるかに意味があります。今明らかだ!ありがとう! – goombaloon

+0

:) yo'ureようこそgoombalooonnn。 – Kristian

1

これを試してみてください:

$("form").submit(function() {  
    //Do your Processing 
}); 


$("form :submit:not([value='New'])").click(function() {  
    return false; 
}); 

の作業例を:http://jsfiddle.net/uKCDj/1/

関連する問題