我想在Javascript中爲HTML複選框創建一個切換函數,如果複選框被選中/未選中,javascript檢測到if語句並執行相應的操作(在這種情況下,添加/刪除一個參數到網址,並用一組新的結果刷新頁面)Javascript不識別初始複選框的值
現在,我只是試圖通過檢查框時檢測到彈出警報的JavaScript切換功能/選中。
這裏是JavaScript的:
<script type="text/javascript" language="javascript">
function filterToggle(attribName)
{
var elementII = document.getElementById(attribName);
if(elementII.checkedTag == "unchecked"){
elementII.checkedTag = "checked";
alert("checked");
}
else {
elementII.checkedTag = "unchecked";
alert("unchecked");
}
}
</script>
而這裏的複選框被創建多次,其中,一個PHP foreach循環中:
$BODY .= sprintf("<input type=\"checkbox\" onclick=\"filterToggle('%s')\" name=\"%s\" value=\"%s\" id=\"%s\" checkedTag=\"unchecked\"/> %s ",
$attribName, $attribName, $attribClass, $attribName, $attribName, $attribName);
所以這裏的想法是箱子應在加載頁面未經檢查(他們是),當我檢查它們時,警報應該說「檢查」,並且當我取消選中時,警報應該說「未檢查」。這裏的一切都很完美,除了這個事實,當我現在勾選這些框時,他們會說「未檢查」,而當我取消選中時,他們會說「已檢查」。所以看起來JavaScript正在改變checkedTag屬性在複選框中的值,並作出相應的響應,,但它沒有認識到複選框的值最初設置爲「未選中」的事實,因此,而不是將其設置爲未選中並在第一次點擊時提醒「未檢查」,因爲它目前看起來正在做,它應該將其設置爲「檢查」並提醒「檢查」。
這裏有什麼想法嗎?我無法弄清楚爲什麼它沒有認識到初始值 - 在checkedTag值附近嘗試了雙引號,單引號,沒有引用...相同的結果。
以下是JSFiddle中的一些示例輸出代碼 - http://jsfiddle.net/intenex/s45JC/3/,其中3個複選框顯示上述錯誤。
謝謝!
我開始使用jQuery和有一堆的問題 - http://stackoverflow.com/questions/7032748/jquery-function-not-executing-inside-php-foreach-loop 這個問題是後來的道路我需要jQuery是特定於每個複選框作爲當每個複選框被選中時,該複選框的唯一參數將被插入到URL中以重新加載一個xml結果頁面,我不確定如何在jQuery中做到最好。任何幫助將不勝感激那裏,謝謝! – Intenex
看到我的編輯,你可以添加一個類來輸入你想要的,而不是所有的,然後將'$('input')'改爲'$('。myClass')'。你可以看到每個複選框都返回它的ID,因爲我使用了'$(this)'。 –