亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

jQuery ダイアログ ボタンは無(wú)視されました。フォームの送信を続行します
P粉832212776
P粉832212776 2023-08-15 12:55:00
0
1
637
<p>次のフォーム コードがあり、JavaScript コードを以下に示します。問(wèn)題は、<code>validateDialogForm()</code> を?qū)g行すると、特定の條件が満たされると、jquery ダイアログ ボックスが表示されることです。確かにダイアログが數(shù)秒間表示されるのがわかりますが、ダイアログはそこに留まらず、フォームは引き続き送信されます。フォームを一定期間一時(shí)停止し、ユーザーが <code>Save</code> ボタンをクリックした場(chǎng)合にのみ送信するようにしたいと考えています。フォームが送信されないように、<code>return false;</code> 関數(shù)の終わりの前に <code>validateDialogForm()</code> を追加しようとしましたが、ダイアログの保存ボタンをクリックすると、フォームの送信は続行されず、そのまま殘ります。ここで私は何を間違っているのでしょうか?以下のコードの現(xiàn)在の狀態(tài)では、jquery ダイアログに関係なくフォームは送信され続けます。(清晰起見(jiàn),刪除很多不相關(guān)的代コード)</p> <p><br /></p> <pre class="brush:js;toolbar:false;">$('#checklist_dialog').hide(); 関數(shù) validateDialogForm() { $('#checklist_dialog').show(); var isconfirmed = false; //STEP:1 オプション B が選択されているかどうかを確認(rèn)します。 var selectedVal = ""; var selected = $("input[type='radio'][name='sampleChoice']:checked"); if (selected.length > 0) { selectedVal = selected.val(); console.log("選択されたオプションは " selectedVal); } if (selectedVal === "choiceB") { if ($("#choiceBstatus").val() === "true") { //ダイアログボックスを表示する $('#checklist_dialog').dialog({ モーダル: true、 最大幅: 600、 最大高さ: 500、 幅: 600、 高さ: 500、 かぶせる: { 不透明度: 0.7、 背景:「黒」 }、 ボタン: { "保存": function() { $(this).dialog('close'); alert("クリックされたSAVEボタン內(nèi)"); $("#choiceBstatus").val("false"); //isconfirmed = true; true を返します。 }、 "キャンセル": function() { $(this).dialog('close'); alert("フォームを保存する前に、チェックリストを完了/保存する必要があります!"); // false を返します。 } } }); /* e.preventDefault(); false を返します。 */ } // if($("#choiceBstatus").val() == true ){の終わり if ($("#choiceBstatus").val() === "false") { // true を返します。 } } // if(selectedVal === "choiceB"){ の終わり // false を返します。 /* if(isconfirmed){ true を返します。 } それ以外 { false を返します。 } */ }</pre> <pre class="brush:html;toolbar:false;"><form id="orderForm" action="/mywebsite/order.htm" method="POST" onsubmit="return (validateOrderForm(this) &) ;& validateDialogForm())"> <input id="choiceBstatus" name="choiceBstatus" type="hidden" value="true"> <div id="ownerDisplayFields" style="visibility:visible;"> <テーブルクラス="noPrint"> //いくつかの div </tbody> </テーブル> </div> <div id="pManualTitle" style="表示: ブロック"> <テーブルクラス="noPrint"> <みんな> </tbody> </テーブル> </div> <div id="checklist_dialog" title="新しいタイトル" style="表示: なし;"> <p>チェックリスト 1 はここにあります</p> <p>チェックリスト 2 はここにあります </p> </div> <テーブルクラス="noPrint"> <みんな> <tr> <td align="center"><br> <input class="button" type="submit" name="save" value="保存"> - <input class="button" type="submit" name="cancel" value="Cancel" onclick="bCancel = true;"> </td> </tr> </tbody> </テーブル> <div></div> </form></pre> <p><br /></p>
P粉832212776
P粉832212776

全員に返信(1)
P粉764836448

コメントで述べたように、ダイアログ ボックスは UI をブロックしないため、ダイアログ ボックスが表示されているときはフォームの送信を防止する必要があります。停止しない限り送信は続行されます。ダイアログボックスのボタンを押すと、実際にフォームを送信できます。

ここで注意が必要なのは、実際にフォームを送信すると、onsubmit 関數(shù)も再度トリガーされることです。良い方法は、フラグを設(shè)定することです?;镜膜讼M嗓辘蝿?dòng)作を行う以下の疑似コードを參照してください。

リーリー リーリー
最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート