2012-06-21 26 views
0

以下是應該發生的事情:將var從真切換爲false

單擊按鈕時,表單的提交被禁用。然後運行文本交換。完成文本交換後,取消的var應該切換爲false,然後提交表單。

但是,當var cancel無法切換爲false時會出現問題。我不知道爲什麼它不會。

<script type="text/javascript"> 
var cancel = true; 

$("#btn-submit").click(function(){ 
    if (cancel = true) { 
    $('form').on('submit', function(ev) { 
     ev.preventDefault(); 
     form = $(".submit-form"); 
     fp = $('#free-planner'); 
     fp.fadeOut(350, function() { 
     fp.text('Check your email!'); 
     }); 
     fp.fadeIn(350, function() { 
     var cancel = false; 
     }); 
    }); 
    } 
}); 
if (cancel = false) { 
    form.submit(); 
} 
</script> 

回答

4
if (cancel = false) { 

應該是

if (cancel == false) { 

cancel = false是賦值,並且始終爲false。

+2

我相信你的意思是'cancel = false'總是'false'。 – Paulpro

+0

@ ascii-lime燁,謝謝。 –

3

if (cancel = true) {... 
if (cancel = false) {... 

if (cancel == true) {... 
if (cancel == false) {... 

或更好:

if (cancel === true) {... 
if (cancel === false) {... 
1

您應該在條件語句中使用比較而不是賦值。

這是你有什麼...

if (cancel = true) { 

,這是應該的樣子

if (cancel == true) { 

雖然你可以很容易地忽略聲明

if(cancel){ 
右側
0
<script type="text/javascript"> 
var cancel = true; 

$("#btn-submit").click(function(){ 
    if (cancel) { 
    $('form').on('submit', function(ev) { 
     ev.preventDefault(); 
     form = $(".submit-form"); 
     fp = $('#free-planner'); 
     fp.fadeOut(350, function() { 
     fp.text('Check your email!'); 
     }); 
     fp.fadeIn(350, function() { 
     var cancel = false; 
     }); 
    }); 
    } 
}); 
if (!cancel) { 
    form.submit(); 
} 
</script> 
相關問題