javascript - jQuery 确认按钮不在弹出的确认()对话框中

标签 javascript jquery

我有一个长表单,正在使用 jQuery 验证插件进行验证。表单验证后,我希望提交按钮更改为确认按钮,并在上面显示有关检查表单错误的适当消息。再次单击此按钮时,只要仍然填写所有必填字段,这次就应该真正提交表单。 我有以下内容:

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(); 提交。如果检查通过,我将隐藏“提交”按钮并显示“确认”按钮以及有关检查提交等的小消息。请参阅下文:

$(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();然后它就可以工作了。

关于javascript - jQuery 确认按钮不在弹出的确认()对话框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376240/

相关文章:

javascript - 如何确保链接的默认操作始终处于禁用状态?

javascript - 使用 ajax 回调将数据源绑定(bind)到 Controller 时,数据未显示在 Kendo Grid 上

javascript - jQuery replaceWith 后缺少 CSS 类。怎么修?

javascript - JQuery 仅适用于警报

javascript - HTML 进度元素未更新

javascript - 无法从 "../../App"解析 "node_modules\expo\AppEntry.js"构建 JavaScript 包失败

javascript - 为什么我不能使用 CSS 在这个特定的 Input 元素上使用固定定位?

javascript - 尝试连接输入框并在其中绑定(bind)值

javascript - 如何限制画线的位置

javascript - 如何在 Javascript 中设置对象的动态属性?