感谢有关此问题的任何指导,因为我找不到合适的文档来解决此问题。
我有一个基本表单,它将一些数据发送到php页面进行处理。我最近安装了一个Jquery脚本,以防止多次按下提交按钮。据我所知,Submit()函数没有将Post数据传递到下一个PHP页面进行处理,也不确定我缺少什么。
以下是表格:
<form class="form-inline" style="display: inline-block;" action="XXX.php" method="post">
<input name="Country" type="hidden" value="USA"/>
<input name="Subject" type="hidden" value="Item1"/>
<input name="Record_ID" type="hidden" value="1"/>
<button name="App" type="submit" value="New" class="btn btn-primary">Send Request</button>
</form>
这是脚本:
<script>
$(document).ready(function () {
$('form').submit(function() {
//disable the submit button and update text
$(this).children('button').attr("disabled", true);
$(this).children('button').text('Please Wait...');
return true;
});
});
</script>
当我点击&#34;发送请求&#34;按钮,文本更改,表单提交,但帖子数据似乎没有出现。我已经看过像序列化这样的引用,但由于我没有使用Ajax,因此无法弄清楚如何使其工作。感谢您提供的任何帮助!
答案 0 :(得分:0)
****这里有什么实际上结束了工作,虽然我无法禁用按钮,因为它打破了表格,如果我尝试这样做。我可以说我没有正确使用jquery选择器,因为在我尝试$(this).child(&#39; button&#39;)之前,它无法正确选择按钮。下面的版本有效,但是如果我尝试添加这一行:
$("button", this).attr('disabled', true);
然后表格不会提交。所以下面的代码确实有效(感谢@Taplar),我已经确认它只允许一次提交表单...用户可以坐在那里,如果他们想要点击它一百次,但是没有任何反应首先点击。
$(document).ready(function () {
var formsEnabled = true;
$('form').submit(function(e) {
if (!formsEnabled) e.preventDefault();
$("button", this).text('Please Wait...');
formsEnabled = false;
});
});
答案 1 :(得分:0)
这没有经过测试,但是如何:
$(this).css("pointer-events:none");
这应禁用单击按钮,而不禁用POST数据。