当我在jquery.validate中使用bootbox时遇到问题,如果将bootbox.confirm放入SubmitHandler,则提交按钮的值将在后端丢失
JS代码:
$(function () {
$("#userForm").validate({
submitHandler: function (form) {
bootbox.confirm('are you sure?', function (result) {
if (result) {
form.submit();
}
})
}
});
})
数据进入后端:
Array
(
[username] => james
)
如果我删除bootbox.confirm,例如:
$(function () {
$("#userForm").validate({
submitHandler: function (form) {
form.submit();
}
});
})
它显示:
Array
(
[username] => james
[submitButton] => Submit
)
任何人都知道为什么以及如何解决此问题? 非常感谢。
答案 0 :(得分:0)
在第二个示例中,通过按钮提交表单。但是,在您的第一个示例中,仅在确认对话框后以编程方式提交表单,因此不再涉及您的提交按钮,这就是为什么它永远不会显示在服务器上的原因。
点击retrieve and copy this value即可隐藏一个字段,并且该窗体有效。
driver.execute_script("window.CheckStatus = () => true;")
HTML标记:
// without resetting the scenes
controller = controller.destroy();
// with scene reset
controller = controller.destroy(true);
到那时,你应该得到这个:
$(function () {
$("#userForm").validate({
submitHandler: function (form) {
// copy value of button into hidden field
$('#submitButtonValue').val($('#submitButton').val());
bootbox.confirm('are you sure?', function (result) {
if (result) {
form.submit();
}
})
}
});
});
尽管如此,目前尚不清楚为什么首先需要其中的任何一个。如果正在通过<form id="userForm'>
<input type="hidden" name="submitButtonValue" id="submitButtonValue" value="" />
....
<input type="submit" name="submitButton" id="submitButton" value="Submit" />
</form>
,我们是否不能自动假设单击了Array
(
[username] => james
[submitButtonValue] => Submit
)
按钮?如果是这样,将“提交”按钮的值复制到隐藏字段中似乎毫无意义。