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

忽略了jQuery對(duì)話框按鈕,繼續(xù)提交表單
P粉832212776
P粉832212776 2023-08-15 12:55:00
0
1
640
<p>我有以下的表單程式碼和javascript程式碼如下所示。問題是當(dāng)執(zhí)行到<code>validateDialogForm()</code>時(shí),如果滿足某些條件,會(huì)顯示一個(gè)jquery對(duì)話框。我確實(shí)能夠看到對(duì)話框出現(xiàn)了幾秒鐘,但它不會(huì)停留在那裡,表單仍然繼續(xù)提交。我希望表單在一段時(shí)間內(nèi)暫停,只有當(dāng)使用者點(diǎn)擊<code>儲(chǔ)存</code>按鈕時(shí)才提交。我嘗試在<code>validateDialogForm()</code>函數(shù)結(jié)束前加上<code>return false;</code>,以阻止表單提交,但當(dāng)我點(diǎn)擊對(duì)話框的儲(chǔ)存按鈕時(shí),它不會(huì)繼續(xù)提交表單,而是保持原樣。我在這裡做錯(cuò)了什麼?以下程式碼的目前狀態(tài)是,無論jquery對(duì)話框如何,表單都將繼續(xù)提交。(為了聲音起見,刪除了許多不相關(guān)的程式碼)</p> <p><br />></p>
$('#checklist_dialog').hide();

函數(shù) validateDialogForm() {

  $('#checklist_dialog').show();
  var isConfirmed = false;

  //步驟:1 檢查是否選擇了選項(xiàng) B。
  var 選定的值 = "";
  var selected = $("input[type='radio'][name='sampleChoice']:checked");

  if (selected.length > 0) {
    selectedVal = selected.val();
    console.log("所選選項(xiàng)是" selectedVal);
  }

  if (selectedVal === "choiceB") {
    if ($("#choiceBstatus").val() === "true") {
      //顯示對(duì)話框
      $('#checklist_dialog').dialog({
        模態(tài):真實(shí),
        最大寬度:600,
        最大高度:500,
        寬度:600,
        高度:500,
        覆蓋:{
          不透明度:0.7,
          背景:“黑色”
        },
        紐扣: {
          「儲(chǔ)存」:函數(shù)(){
            $(this).dialog('關(guān)閉');
            alert("在被點(diǎn)擊的儲(chǔ)存按鈕內(nèi)");
            $("#choiceBstatus").val("假");
            //已確認(rèn)= true;

            返回真;
          },
          「取消」:函數(shù)(){
            $(this).dialog('關(guān)閉');
            Alert("在儲(chǔ)存表單之前,您必須完成/儲(chǔ)存清單!");
            // 返回假;

          }
        }
      });
      /* e.preventDefault();
                            返回假; */
    } //if($("#choiceBstatus").val() == true ){ 結(jié)束

    if ($("#choiceBstatus").val() === "false") {
      // 返回真;
    }
  } // if(selectedVal === "choiceB"){ 結(jié)束

  //返回假;

  /* if(已確認(rèn)){
    
    返回真;
  }
  別的 {
    返回假;
  }
   */
}</pre>
<表格類別=“noPrint”> //一些div </tbody> </表>
<表格類別=“noPrint”> <正文> </tbody> </表>
;
P粉832212776
P粉832212776

全部回覆(1)
P粉764836448

如評(píng)論中所提到的,當(dāng)對(duì)話方塊顯示時(shí),您需要阻止表單提交,因?yàn)閷?duì)話方塊不會(huì)阻塞UI。除非您停止它,否則它將繼續(xù)提交。在您按下對(duì)話方塊中的按鈕後,您可以真正提交表單。

現(xiàn)在的棘手之處在於,當(dāng)您真正提交表單時(shí),這也會(huì)再次觸發(fā)onsubmit函數(shù)!一個(gè)好的方法是設(shè)定一個(gè)標(biāo)誌。請(qǐng)參見下面的偽代碼,它應(yīng)該基本上做到了您想要的。

<form id="orderForm"
      action="/mywebsite/order.htm"
      method="POST"
      onsubmit="return (validateOrderForm(this) && validateDialogForm(this))">
...
let real_form_submit = false;

function validateDialogForm(theForm){
  if(!real_form_submit) {
    $('#checklist_dialog').dialog({
      ...
      buttons: {
        "SAVE": function() {
          $(this).dialog('close');
          real_form_submit = true;
          theForm.submit()
        },
        "CANCEL": function() {
          $(this).dialog('close');
        }
      }
    });
  }

  return real_form_submit;
}
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板