簡體   English   中英

jQuery確認按鈕不在彈出的Confirm()對話框中

[英]jQuery confirm button not in a popup confirm() dialog

我有一個很長的表格,正在使用jQuery validate插件進行驗證。 表單驗證之后,我希望“提交”按鈕變為帶有上面有關檢查表單錯誤的適當消息的確認按鈕。 只要再次填寫所有必填字段,再次單擊此按鈕,就應該實時提交此表單。我具有以下內容:

var confirmed = function(){
  alert($("#someForm").attr("name")); //just to see the function fire...
  $("#someForm").submit();  
  return true;
}

$(document).ready(function(){
  $("#someForm").validate({
    submitHandler: function(form){
      var oldBtn = $("#submit");
      var newBtn = oldBtn.clone();
      newBtn.click(confirmed)
      newBtn.text("Confirm");
      newBtn.insertBefore(oldBtn);
      oldBtn.remove();
      newBtn.attr({"id": "submit"});
    }
  });
});

...

<button type="submit" id="submit">Submit</button>

它可以用來驗證表單,然后按鈕會更改文本,單擊該函數會觸發該功能(警報中包含表單的名稱),但是該表單永遠不會真正提交。 任何幫助或想法將不勝感激。

謝謝

編輯:好的,我想我已經弄清楚了。 我隱藏了“提交”按鈕和一個名為“驗證”的按鈕,它僅檢查表單是否經過驗證,而無需使用$("#someForm").valid();提交$("#someForm").valid(); 如果檢出,我將隱藏“提交”按鈕,並顯示“確認”按鈕以及有關檢查您的提交的小消息,等等。請參見下文:

$(document).ready(function(){
  $("#submitBtn").hide();
  $("#confMessage").hide();
  $("#someForm").validate();
});

var checkValid = function(){
  var isValid = $("#volunteer").valid();
  if(isValid){
    $("#validBtn").remove();
    $("#submitBtn").show();
    $("#confMessage").show();
  }
}

...

<p id="confMessage">Please review your submission.</p>    
<p><button id="validBtn" onclick="checkValid()">Validate</button>    
<button type="submit" id="submitBtn">Submit</button></p>

完美運行,並且比我的原始代碼干凈得多!

刪除oldBtn.remove(); 那么它將起作用。

你有

  var oldBtn = $("#submit");
  var newBtn = oldBtn.clone();

上面這行所做的是在html中添加相同的DOM ,因此也將復制ID
每個DOM ID必須唯一。
嘗試重寫克隆的DOM ID,然后嘗試。

newBtn.click(confirmed)

此代碼表示您將事件分配給newBtn而不調用click事件。

對於click事件,請使用.trigger()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM