如何解决如何使用值来检查功能 jquery 中的单选按钮
所以我试图让我的代码中 c 是 B1 的值(即 1),但是它不起作用。
当我在 switch 语句中用数字替换 c 时它可以工作,但是我尝试过的所有方法都无法让 c 保持 B1 的值。
// $("#B1").prop("checked",true); // this works
var c = $("#B1").val(); // this doesnt work
switch (c) {
case 1:
$("#B1").prop("checked",true);
break;
case 2:
$("#B2").prop("checked",true);
break;
case 3:
$("#B3").prop("checked",true);
break;
case 4:
document.getElementById("B4").checked = true;
break;
case 5:
document.getElementById("B5").checked = true;
break;
case 6:
document.getElementById("B6").checked = true;
}
<title>jquery set radio button checked based on value - itsolutionstuff.com</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<input type="radio" name="Semantic score1" id='B1' value="1"> Completely Dissimilar
<input type="radio" name="Semantic score1" id="B2" value="2"> Not Equivalent,but Same Topic
<input type="radio" name="Semantic score1" id="B3" value="3"> Not Equivalent,But Shares Some Details
<br>
<input type="radio" name="Semantic score1" id="B4" value="4"> Roughly Equivalent
<input type="radio" name="Semantic score1" id="B5" value="5"> Mostly Equivalent
<input type="radio" name="Semantic score1" id="B6" value="${Sscore1}"> Completely Equivalent
解决方法
1 不等于“1”
把开关改成测试字符串或者把c改成这样的整数
var c = +$("#B1").val(); // this now works too
var c = +$("#B1").val(); // this now works too
switch (c) {
case 1:
$("#B1").prop("checked",true);
break;
case 2:
$("#B2").prop("checked",true);
break;
case 3:
$("#B3").prop("checked",true);
break;
case 4:
$("#B4").prop("checked",true);
break;
case 5:
$("#B5").prop("checked",true);
break;
case 6:
$("#B6").prop("checked",true);
}
<title>jquery set radio button checked based on value - itsolutionstuff.com</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<input type="radio" name="Semantic score1" id='B1' value="1"> Completely Dissimilar
<input type="radio" name="Semantic score1" id="B2" value="2"> Not Equivalent,but Same Topic
<input type="radio" name="Semantic score1" id="B3" value="3"> Not Equivalent,But Shares Some Details
<br>
<input type="radio" name="Semantic score1" id="B4" value="4"> Roughly Equivalent
<input type="radio" name="Semantic score1" id="B5" value="5"> Mostly Equivalent
<input type="radio" name="Semantic score1" id="B6" value="${Sscore1}"> Completely Equivalent
或者就这样做
var c = $("#B1").val(); // this now works too
$("#B"+c).prop("checked",true);
var c = $("#B1").val(); // this now works too
$("#B"+c).prop("checked",true);
<title>jquery set radio button checked based on value - itsolutionstuff.com</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<input type="radio" name="Semantic score1" id='B1' value="1"> Completely Dissimilar
<input type="radio" name="Semantic score1" id="B2" value="2"> Not Equivalent,But Shares Some Details
<br>
<input type="radio" name="Semantic score1" id="B4" value="4"> Roughly Equivalent
<input type="radio" name="Semantic score1" id="B5" value="5"> Mostly Equivalent
<input type="radio" name="Semantic score1" id="B6" value="${Sscore1}"> Completely Equivalent
尝试将 c 转换为数字。
var c = parseInt( $( "#B1" ).val());