单击一次后,保存按钮被禁用,但如果再次单击它,则会重新提交表单。我猜它永远不会到达if语句的第一部分。任何帮助将不胜感激:
-block extra_scripts
:javascript
function check_button(){
var saveButtons = $('a[name=saveButton]');
if (saveButtons.is(':disabled')) {
alert("disabled");
return false;
}
else{
$("#main_form").submit();
saveButtons.attr("disabled", true);
}
}
-block main
.btn-group.pull-right
%a.btn.icon-save.btn-callout{
:name => "saveButton",
:id => "saveButton",
:type => "submit",
:onclick => "check_button()"
}
Save
只需注意,saveButtons包含两个按钮。一个用于页面顶部,一个用于底部。
答案 0 :(得分:0)
尝试saveButtons.attr("disabled", "disabled");
答案 1 :(得分:0)
我想只有输入元素可以是:disabled
(参见here)
您可以尝试if (saveButtons.attr("disabled"))
。
答案 2 :(得分:0)
我在我的身上用过这个: https://stackoverflow.com/a/22557155/5475948
当然,我还有一些其他脚本检查我的元素,以便删除禁用的类。
<form method="post" id="valid">
<input type="hidden" id="selected-product" name="selected-product" value="">
<input type="hidden" id="step" name="step" value="1">
<button type="submit" id="submitter" class="btn btn-green uppercase disabled">Valider</button>
</form>
<script>
//dom ready handler
jQuery(function ($) {
//form submit handler
$('#valid').submit(function (e) {
//check atleat 1 checkbox is checked
if ($('#submitter').hasClass('disabled')) {
//prevent the default form submit if it is not checked
e.preventDefault();
}
})
})
</script>