2012-03-04 96 views
0

我是js和jquery的新手。目前,我有一個表格form.php,其中包含一個複選框。當用戶點擊提交時,表單變量被髮送到一個form.js文件,其中每個值被檢查爲空或不是。檢查複選框是否被選中JS

form.js文件完美地工作,但是,複選框似乎什麼都沒有發生。我有一種感覺,這是由於我聲明變量的方式。

下面是js文件的代碼:

var email = $('#email').val(); 
var website = $('#website').val(); 
var CHECKBOX = $('CHECKBOX').val(); 
... 
... 
if (CHECKBOX.checked == FALSE){ 
    var error = true; 
    $('#notchecked_error').fadeIn(500); 
}else{ 
    $('#notchecked_error').fadeOut(500); 
} 
+1

'FALSE'是否在您的實際代碼中大寫?這很可能不是它,但我很好奇......否則我有一個想法。 – nmagerko 2012-03-04 20:25:34

+1

'CHECKBOX'不是正確的選擇器。即使它是正確的,你也必須使用'$('CHECKBOX')。is(':checked');'。 – 2012-03-04 20:26:19

+0

可能的重複[如何檢查複選框是否在jQuery中檢查?](http://stackoverflow.com/questions/901712/how-do-i-check-if-a-checkbox-is-checked-in -jquery) – 2016-12-14 17:02:43

回答

0

嘗試使用:

if ($('#CHECKBOX').prop("checked")) 

或:

if ($('#CHECKBOX').is(":checked")) 

另外,還要確保您的複選框選擇是正確。

0
$('input[type=checkbox]:checked') // If you have multiple checkboxes you can use this and loop through them to get additional info 
$('#checkboxID:checked').length // To get one specific checkbox 
+1

不要忘記'.length'。 – 2012-03-04 20:31:50

+0

你是對的,謝謝。 – user1247486 2012-03-04 20:39:19

0

我在代碼中看到兩個問題。第一個是您的CHECKBOX分配中的選擇器有故障。它應該是

var CHECKBOX = $('input[type=checkbox]').val(); 

第二個問題是,你從VAL()函數讀取CHECKBOX.checked,你需要從自身複選框讀取它。

if(CHECKBOX.checked) 
+0

'.val()'返回值。 – RobG 2012-03-04 21:05:04

0
`$('CHECKBOX').val();` 

將設法找到與CHECKBOX標記名的元素,並返回它的值。想必你想要的CHECKBOX的ID來引用複選框:

var CHECKBOX = $('#CHECKBOX'); 

要看看它的檢查:

if (!CHECKBOX[0].checked) { 
    // CHECKBOX is not checked 
} 

你真的應該使用jQuery之前瞭解基本的JavaScript。通常驗證是從表單提交發起的,這可以讓你引用表單。然後你可以引用所有表單元素作爲表單的屬性,你不需要創建所有這些jQuery對象。例如如果您的形式是這樣的:

<form ... onsubmit="validate(this)"... > 
    <input type="checkbox" name="checkbox"> 
</form> 

然後在您的驗證功能:

function validate(form) { 
    if (!form.checkbox.checked) { 
    // the checkbox isn't checked 
    } 
} 

,如果你願意,你可以動態地連接監聽器。