1

我正在尝试做一个程序来保存单选按钮的状态并检查它。这是我的代码,但我不知道它有什么问题。请帮帮我

<script>
function saveState(){
   var ans1 = document.getElementById('grupo1');
   if (ans1.value == 1)
   {
       ans1.setAttribute("checked","checked");
       ans1.checked = true;
   }
</script>

<input type="radio" name="group" id="grupo1" value="1"> One
<input type="radio" name="group" id="grupo2" value="0"> Two
<input type="submit" onclick="saveState()" value="update">
4

3 回答 3

2

尝试这个:

<script>
    function saveState(){
        var ans1 = document.querySelector('input[name="group"]:checked').value;

        if (ans1.value == 1){
              ans1.setAttribute("checked","checked");
              ans1.checked = true;
        }
   }
  </script>
于 2013-09-03T16:13:48.990 回答
1

你也许是这个意思?

除非 grupo1 按钮可以更改值,否则您的代码没有多大意义

以下脚本假设您在某处有一个标准的 cookie 脚本

<script>
window.onload=function() {
  if (getCookie("grupo1")=="true") {
   document.getElementById('grupo1').click(); 
  }
  // either this
  document.getElementById('grupo1').onclick=function() {
     setCookie("grupo1","true")
  }
  // or this - depending on when you want to save the state
  document.getElementById("form1").onsubmit=function() {
    setCookie("grupo1",document.getElementById('grupo1').checked?"true":"false");
  }
}
</script>
<form id="form1">
<input type="radio" name="group" id="grupo1" value="1"> One
<input type="radio" name="group" id="grupo2" value="0"> Two
<input type="submit" value="update">
</form>
于 2013-09-03T16:22:14.523 回答
1

在你放置括号的方法中产生结果有助于防止出现这种情况。

例如,如果您将函数、循环、条件 (if) 语句等的左括号与条件本身放在同一行(就像上面在函数声明中所做的那样),您只需查找关闭的。

另一方面,如果您将左括号和右括号都放在自己的行上,您的代码将更加垂直对称,如果您正在处理更大的代码块,则更容易发现缺少的括号。

您应该查看处理此特定问题的这篇文章:http: //encosia.com/in-javascript-curly-brace-placement-matters-an-example/

于 2013-09-03T16:24:20.503 回答