2017-06-02 291 views
0

我有兩個單選按鈕:更改單選按鈕值

<input type="radio" name="editList" id="prov" value="Admin">Admin 
<input type="radio" name="editList" id="user" value="User">User 

我想用JavaScript來改變價值觀,我努力爲:

var typeu= $('input[type=radio][name=editList]').val(); 

if (typeu=== "Admin") { 
    typeu= typeu.val() === "A"; 
} else if (typeu === 'User') { 
    typeu= typeu.val() === "U"; 

,但我得到的問題:

Uncaught TypeError:typeu.val不是函數

有人可以幫我嗎?

+0

請發佈[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve)。具體來說,什麼是'tipoResponsable',以及如何在嘗試爲其分配新值之後使用'typeu'? –

+1

你正試圖在'typeu'上調用'.val()',它是'$('input [type = radio] [name = editList]').val()',這是行不通的。 – xDreamCoding

+0

'typeu'是一個字符串,而不是一個對象。 –

回答

0

試試這個

var typeu = $('input[type=radio][name=editList]'); 

$.each(typeu, function(i, v) { 
    if ($(v).val() === "Admin") { 
    $(v).val("A"); 
    } else if ($(v).val() === 'User') { 
    $(v).val("U"); 
    } 
}); 

https://jsfiddle.net/za61z3vx/

第一行,你得到所有匹配type=radioname=editList的投入。既然有多個它將是一個數組,所以你需要遍歷它。

0

要檢查單選按鈕由JavaScript,你應該使用 「道具」 功能

$('#prov').prop('checked', true); 
// or $('#prov').prop('checked', false); 

來獲得道具檢查ü應使用:

$('#prov').prop('checked'); 

從代碼:

var typeu= $('input[type=radio][name=editList]'); 
typeu.each(radio => { 
    const $rb = $(radio); 
    console.log($rb.val(), $rb.prop('checked')) 
}); 
0

使用val(function)

var radioValues = { 
 
    'Admin':'A', 
 
    'User':'U' 
 
}; 
 

 
$('#prov, #user').val(function(_, existingValue){ 
 
    // if current value matches keys in object, will return new value 
 
    // if not a match will return existing value 
 
    return radioValues[this.value] || existingValue; 
 
}) 
 
// log updated values for this demo 
 
.each(function(){ 
 
    console.log(this.id, 'value is', this.value) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="radio" name="editList" id="prov" value="Admin">Admin 
 
<input type="radio" name="editList" id="user" value="User">User


請注意,您嘗試將只返回第一個元素的值。您需要遍歷它們並處理每個實例