2017-05-31 62 views
0

我想測試複選框是否被選中。 我有更多的輸入,他們有不同的名字。 我設法選擇輸入,但我似乎無法檢查它是否被選中。如果我添加條件'= true',則會在我加載頁面時檢查它。如果我放棄它只是。檢查它沒有做任何事情按名稱選擇複選框,並檢查它是否檢查javascript

  1. 我選擇了輸入權嗎?請注意我想選擇它的名稱而不是id或類

  2. 爲什麼一旦頁面加載我的條件,如果語句不起作用?


<input type="checkbox" name="name1"> 
<input type="checkbox" name="name2"> 
<input type="checkbox" name="name3"> 
<input type="checkbox" name="name4"> 


const firstInput = document.getElementsByName('name1'); 
if (firstInput[0].checked) { 
    console.log('checked'); 
} 
+0

您正在查找名稱爲「1」的元素,但您獲得了名稱爲「name1」的元素。 –

+0

哦,是的,對不起,我的意思是'name1'。一旦我檢查它,控制檯應打印檢查,但它不 –

+0

您的代碼工作。你在哪裏執行該檢查 - 在一個函數中,在一個監聽器中? –

回答

0

您選擇元素名稱爲 「1」,但不有這樣的名稱元素。 如果你想選擇哪個名字屬性開始與「名」的所有輸入:

const firstInput = document.querySelectorAll('[name^=name]') 
0

你需要的屬性添加到輸入。附上一個onclick偵聽並調用

的getAttribute 的setAttribute

操縱 '檢查' 屬性;

<input type="checkbox" onclick="myFunction()" name="name1"> 
<input type="checkbox" onclick="myFunction()" name="name2"> 
<input type="checkbox" onclick="myFunction()" name="name3"> 
<input type="checkbox" onclick="myFunction()" name="name4"> 


function myFunction() { 
    var $element = document.getElementsByName('name1')[0]; 
    var checked = $element.getAttribute('checked') === 'true'; 
    $element.setAttribute('checked', !checked); 
    console.log($element.getAttribute('checked')); 
} 
+0

謝謝你的建議。 –

+0

我設法做到了將事件偵聽器添加到複選框。 –