我有两个单选按钮:
<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";
但是我遇到了问题:
未捕获的TypeError:typeu.val不是函数
有人能帮助我吗?
答案 0 :(得分: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=radio
和name=editList
匹配的所有输入。由于它不止一个,所以你需要遍历它。
答案 1 :(得分:0)
要通过javascript检查单选按钮,您应该使用&#34; prop&#34;功能
$('#prov').prop('checked', true );
// or $('#prov').prop('checked', false );
要获得GET检查,你应该使用:
$('#prov').prop('checked');
从你的代码中:
var typeu= $('input[type=radio][name=editList]');
typeu.each( radio => {
const $rb = $(radio);
console.log( $rb.val(), $rb.prop('checked') )
});
答案 2 :(得分:0)
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)
})
&#13;
<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
&#13;
请注意,您的尝试只会返回第一个元素的值。您需要遍历它们并处理每个实例