[英]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.