2012-11-14 91 views
1

我正在嘗試使用Javascript來檢測複選框是否已被選中。我的計劃是允許用戶選擇複選框以標記打印的字母,然後使用Ajax更新數據庫。我可以使用Javascript來檢測複選框是否已被選中?

這是我正在使用的代碼。

<label for="printed">Printed</label> 
<input type="checkbox" name="8200" id="8200" value="P" onclick="checked(this.id);" /> 
<script type="text/javascript"> 
    function checked(id) { 
    var remember = document.getElementById(id); 
    if (remember.checked){ 
     alert("checked"); 
    }else{ 
     alert("You didn't check it!"); 
    } 
    } 
</script> 

我所得到的回報是一個錯誤說Uncaught TypeError: boolean is not a function from Google Chrome and checked is not a function from Firefox.

+0

是一個jQuery解決好嗎? –

+0

代碼中缺少一些東西。 – gdoron

+0

是的,我很高興使用jQuery,雖然目前爲止還沒有任何運氣...... – jampez77

回答

6

你應該使用不同的名稱,以您的JavaScript方法,如布爾檢查輸入的字段只是隱藏您已經定義了一個.. 。

+2

是......將它改名爲梗死或類似的,並更新onclick事件 – Dale

+0

完美! :)認爲它可能是簡單的東西,我會在8分鐘內接受它,當它讓我 – jampez77

+0

thanx ... –

0

這裏是你有一個jQuery的解決方案,並會爲每個頁面上的複選框工作(添加一個類選擇器可以將其應用到只有某些複選框)

$(function(){ 
    var remember; 
    $('input:checkbox').click(function(){ 
    remember = $(this).attr('id'); 

    if($(this).is(':checked')){ 
     // Checkbox is checked 

    } else { 
     // Checkbox is NOT checked 

    } 

    }); 
}); 
+1

1)但是這裏沒有jQuery標籤。 2)你在這裏使用jQuery的方式太多了。 3)向選擇器添加多個id使其效率低下。對不起,你選了。 – gdoron

+0

他的辯護我說我打開了jQuery解決方案 – jampez77

+0

@gdoron我使用了太多的JQuery? LOL wtf?你在句子中使用太多字母...... –

1

只需簡單地將您正在使用的函數名稱更改爲「checked(this.id)」。我試過checked1(this.id)。它工作

1

您可以更改函數名稱以獲得答案,如下所示。它的工作對我來說

function IsChecked(id) 
{ 
    var remember = document.getElementById(id); 
    if (remember.checked){ 
     alert("checked"); 
    }else{ 
     alert("You didn't check it!"); 
    } 
} 
1

既然你有不同的jQuery的解決方案,我不是很滿意,我會給你我的jQuery的解決方案:您需要更改的JavaScript的名稱

<input type="checkbox" name="8200" id="theid" value="P" /> 

// 8200 isn't a valid id in HTML4, it can't start with a number 
$('#theid').change(function(){ 
    if (this.checked) 
     alert('checked'); 
    else 
     alert('unchecked'); 
}); 
+0

我不同意,這將需要你爲你想申請的每個複選框編寫JQuery函數它來。你沒有看到我添加類名的註釋嗎? –

+0

@PastorBones。他沒有提到他有多個複選框,爲什麼我應該使用類選擇器?假設他有不止一個人,誰說變更處理應該對所有人都一樣? – gdoron

2

方法。

HTML:

<label for="printed">Printed</label> 
<input type="checkbox" name="8200" id="8200" value="P" onclick="isChecked(this.id);" /> 

JS:

function isChecked(id) { 
     var remember = document.getElementById(id); 
     if (remember.checked){ 
      alert("checked"); 
     }else{ 
      alert("You didn't check it!"); 
     } 
    } 

看這個的jsfiddle: http://jsfiddle.net/6dx6A/39/

相關問題