使用javascript更改单选按钮值

时间:2017-06-02 22:09:27

标签: javascript jquery

我有两个单选按钮:

 <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不是函数

有人能帮助我吗?

3 个答案:

答案 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=radioname=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)

使用val(function)

&#13;
&#13;
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;
&#13;
&#13;

请注意,您的尝试只会返回第一个元素的值。您需要遍历它们并处理每个实例