2011-10-25 47 views
0

我寫了一個簡單的驗證函數。對於某些響應,我無法獲得返回布爾值的函數。現在,我完全沒有點擊提交的迴應。jQuery:自定義函數不迴應

$.fn.ValidateSelect = function() { 
//function ValidateSelect() { (this works) 

    var selected = $('select[name="my-item-size"]').val(); 

    var validate = false; 

    if (selected != 'none') {    
     validate = true;  
    } else { 
     validate = false; 
    } 

    if (validate == true) {    
     return true 
    } else { 
     return false 
    } 
}; 


//submit 
$('.add_item_button').click(function() {  

    if (ValidateSelect() == true) { 
     $('#item_submit').submit(); 
    } else { 
     alert('Please select your brand first.') 
} 

}); 
+1

您沒有調用該函數。 'ValidateSelect'是一個變量名,將會是'undefined'。如果你像這樣擴展jQuery,你應該用'$(selector).ValidateSelect()'來調用它。但是也許一個簡單,正常的功能對你來說已經足夠了。 –

+1

我現在把它變成了一個正常的功能,它起作用了。 – Rob

回答

2

你不需要一個jQuery擴展,而是一個javascript函數。

function ValidateSelect() { 

    var selected = $('select[name="my-item-size"]').val(); 

    var validate = false; 

    if (selected != 'none') {    
     validate = true;  
    } else { 
     validate = false; 
    } 

    if (validate == true) {    
     return true 
    } else { 
     return false 
    } 
}; 


//submit 
$('.add_item_button').click(function() {  

    if (ValidateSelect() == true) { 
     $('#item_submit').submit(); 
    } else { 
     alert('Please select your brand first.') 
} 

}); 
0

我相信它應該是$ .ValidateSelect()== true。本身調用ValidateSelect將意味着它是一個變量,而不是一個特定的函數。

此外,我想這可能更有意義,把它放在一個普通函數的jQuery(至少看起來是)之外

乾杯

0

您需要實際調用該函數: -

$('.add_item_button').click(function() {  

    if (ValidateSelect() == true) { 
     $('#item_submit').submit(); 
    } else { 
     alert('Please select your brand first.') 
} 
+0

謝謝,但它似乎仍然沒有工作 – Rob