禁用按钮jQuery中的问题

时间:2009-12-14 10:37:09

标签: jquery jsp

我有一个触发提交java脚本函数的表单,如下所示

<form:form commandName="achievment" method="post" id="achievmentForm"  enctype="multipart/form-data" onsubmit="disableButtons(this);" cssClass="validatable">

<input id="button1" type="submit" class="button" name="add" onclick="bCancel=false" value="إضافة" />

</form:form>

并且js代码是

<script type="text/javascript">
<!--

function disableButtons(form){
 if(jQuery(form).valid()){
  jQuery('input:button').removeClass('button');
  jQuery('input:button').addClass('grayButton');
  jQuery('input:submit').removeClass('button');
  jQuery('input:submit').addClass('grayButton');
  jQuery('input:reset').removeClass('button');
  jQuery('input:reset').addClass('grayButton');
  jQuery('input:submit').attr('disabled', true);

 }

}
-->
</script>

正如你所看到的那样,我正在尝试在等待响应的同时禁用页面中的提交按钮..但是发生了什么是浏览器给我一个404错误,但是我有相同的网址...这真的很奇怪因为它只在我试图禁用提交而不是任何其他类型时发生...

1 个答案:

答案 0 :(得分:1)

您的问题描述含糊不清。如果你这样做,而只是没有会发生。你不应该有404,页面只会粘在那里。因为如果您立即禁用按钮,则无法提交表单。给表单提交的机会。在禁用时设置超时。

setTimeout(function() { 
    $('button').attr('disabled', true); 
}, 100); // Disable after 100 milliseconds.

对你的实际问题说了无关:你知道你可以单独设置disabled按钮的样式吗?您似乎一直在添加和删除类。这是不必要的。只需给它们所有相同的类button(或左右)并使用[disabled]属性选择器:

.button {
    /* Define here style of default button. */
}

.button[disabled] {
    /* Define here style of disabled button. */
}