2015-09-20 264 views
1

我有一个输入表单内这两个单选按钮:单选按钮如何取消选中,如果只有一个按钮?

<input type="radio" name="info_only_on" value="yes"> Info-only 
<input type="radio" name="info_only_on" value="off"> (Clear Button) 

它创造了两个按钮,以便用户可以查看信息,仅然后关闭信息,只有当他们犯了一个错误。我创建了第二个按钮,因为一旦单选按钮被选中,再次点击它就不会取消选择它。

我已经切换到type =“checkbox”,它可以让用户取消选择。

<input type="checkbox" name="info_only_on" value="yes"> 

看看收音机类型按钮的规格,我没有看到任何用户取消选中它。我错过了什么?

我使用HTML,PHP和避免JavaScript。


用来检查框值的PHP是:

// When info_only_on is set to clear, it's value should be passed here as "no" 
if($_POST["info_only_on"] == "yes")          
{ $info_only = "Added Member info online but not paying online. "; } 
else 
{ $info_only = " "; } 

    // BUILD UP MESSAGE to email to our membership chair 
$MsgToWrite = "\r\n" . $BasicInfo . $PhoneInfo . $EmailInfo; 
If ($info_only <> " ") 
{ $MsgToWrite = $MsgToWrite . "\r\n" . $info_only; } 
+0

你为什么要避免使用JavaScript?这是非常适合JavaScript的东西,但可以通过使用纯CSS和切换不透明度...发布完整的源代码,以便我可以看到。 –

+0

那么使用复选框会出现什么问题? – divy3993

+0

@divy - 复选框在这里很好,但我想解决这个谜,因为我想使用收音机。即使有几个收音机箱,我也想选择不选。 – curls

回答

2

我不认为你可以做到无javascript,这里是一个简单的例子:

HTML代码:

<input type="radio" name="name" id="radioBtn" onclick="test(this)" /> Radio 

JavaScript代码:

var radioState = false; 
    function test(element){ 
     if(radioState == false) { 
      check(); 
      radioState = true; 
     }else{ 
      uncheck(); 
      radioState = false; 
     } 
    } 
    function check() { 
     document.getElementById("radioBtn").checked = true; 
    } 
    function uncheck() { 
     document.getElementById("radioBtn").checked = false; 
    } 

乘坐看看这里:https://jsfiddle.net/eloufirhatim/ypwhugxz/

+0

@curls就是这样。 – divy3993

+0

谢谢!我有点失落看着它。但必须去做东西,所以我今晚要回来再盯一些。我没有看到元素被设置为传递给函数测试。为什么check()不是if语句中的测试子句。我完全失去了 - 当我有时间时需要看。 – curls

+1

单击单选按钮(onclick属性)时将启动TEST函数,此函数测试名为“radioState”的变量(初始化为false):radioState = true - >单选按钮被选中,false表示单选按钮未选中,所以如果被测试的变量是错误的,启动功能CHECK来检查单选按钮,否则启动UNCHECK功能,取消选中单选按钮 –

4

不幸的是,有没有办法使用HTML取消选择一个单选按钮。在HTML中,只需要选择一个单选按钮。如果你想要在选择一个单选按钮后取消选择所有的单选按钮,那么你将不得不使用JavaScript来做这件事。

维基百科:“可能最初没有一个组中的单选按钮被选中,这个未被选择的状态不能通过与单选按钮小部件进行交互来恢复,尽管通过其他用户界面元素也是可能的。 https://en.wikipedia.org/wiki/Radio_button

+0

@BC - 那是一个愚蠢的设计。但它确实解释了为什么我找不到一种方式来完成与此相反的操作(并取消选中它)。看起来奇怪的是复选框可以,但单选按钮不可以。解释器(浏览器)代码应该能够被标准化,因此两者都可以工作。感谢您的信息! – curls

+0

@BC - 我发布了你的名字和@并且它消失了。然后发布在BC,并保持不变。我以前见过这种情况。这是简单的,我没有做,或者我需要在元问问题来解决这个问题吗? – curls