jquery简单如果语句混淆

问题描述:

我收到确认警报以确认用户操作。jquery简单如果语句混淆

上单击 “确定”,就应该做下面的代码:

function disableSubmitButton() { 
    jQuery("#submitButton").attr("disabled", "true"); 
    jQuery("#rent_space").submit(); 
} 

“取消”,以下。

if (!confirm('Are you sure you want to proceed ?')) { 
    return false; 
} 

然而,目前我的代码被格式化的方式,代码的第一个块,而不管执行其中按钮被按下。

我认为这几乎只是移动代码,但我不确定如何正确地做到这一点,因为我的先例尝试都失败了。任何帮助赞赏。谢谢 !

全码:

<script> 
    jQuery(document).ready(onDocumentReady); 
     function onDocumentReady() { 

      jQuery("#submitButton").click(disableSubmitButton); 

      jQuery('#submitButton').click(function() { 
       if (!confirm('Are you sure you want to proceed ?')) { 
        return false; 
       } 
      }); 

     } 
     function disableSubmitButton() { 
      jQuery("#submitButton").attr("disabled", "true"); 
      jQuery("#rent_space").submit(); 
     } 
</script> 
+0

什么是#submitButton?你可以显示标记吗? – Vinnyq12 2012-02-03 16:30:59

你可以试试:

//jQuery("#submitButton").click(disableSubmitButton); 

jQuery('#submitButton').click(function() { 
if (!confirm('Are you sure you want to proceed ?')) { 
    return false; 
} 
else 
{ 
    disableSubmitButton(); 
} 
}); 

你真的需要禁用提交按钮?在其他点击返回false应该就足够了。

<script> 
    jQuery(document).ready(onDocumentReady); 
     function onDocumentReady() { 

      jQuery('#submitButton').click(function() { 
       if (!confirm('Are you sure you want to proceed ?')) { 
        return false; 
       } 
      }); 

     } 

</script> 

但是我反而绑定到提交事件:

<script> 
    jQuery(document).ready(onDocumentReady); 
     function onDocumentReady() { 

      jQuery('#rent_space').submit(function() { 
       if (!confirm('Are you sure you want to proceed ?')) { 
        return false; 
       } 
      }); 

     } 

</script> 
+0

我认为他只有在提交表单时才会禁用它。函数名称并不仅仅反映了函数的作用,所以有点令人困惑。 – 2012-02-03 16:30:53

+0

+1我喜欢绑定提交更好。 – 2012-02-03 16:37:45

你只需要一个事件侦听器。该条件可以在侦听器主体中处理。

jQuery("#submitButton").click(function(e) { 
    e.preventDefault(); 
    if(confirm("...")) { 
    jQuery("#submitButton").attr("disabled", "true"); 
    jQuery("#rent_space").submit(); 
    } 
}); 

NB。您应该使用e.preventDefault()而不是return false来防止事件的默认行为。

+0

e.preventDefault()像魅力一样工作。谢谢 ! – JFFF 2012-02-03 17:54:28

Hari的回答是正确的。我更喜欢(略)更地道:

jQuery("#submitButton").click(function() { 
    if (confirm("Are you sure you want to proceed?")) { 
     disableSubmitButton(); 
    } else { 
     return false; 
    } 
}); 

编辑编辑我得到它的工作,感谢您的建议。谢谢。 :)

继承人的代码工作。

 <script> 
     jQuery(document).ready(onDocumentReady); 
      function onDocumentReady() { 

       jQuery('#submitButton').click(function() { 
        if (!confirm('Are you sure you want to proceed ?')) { 
         return false; 
        } 
        else{ 
         jQuery("#submitButton").click(disableSubmitButton); 
        } 
       }); 

      } 
      function disableSubmitButton() { 
       jQuery("#submitButton").attr("disabled", "true"); 
       jQuery("#rent_space").submit(); 
      } 
    </script> 
+0

不要这样做:'jQuery(“#submitButton”)。click(disableSubmitButton);'。这是附加ANOTHER点击事件,而不是调用它。您已经有该按钮的点击事件。我很惊讶,即使是作品 - 表单没有被提交,是吗? – 2012-02-03 17:57:17

+0

哎呀,你说得对。糟糕的复制意大利面,这一行实际上是其他的。{disable} {0} {0}} disableSubmitButton(); }在我的代码:) – JFFF 2012-02-03 17:59:43

+0

你有点接受你没有选择实施的答案,但没关系:) – 2012-02-03 18:03:20