Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 是否可以在<;标签>;领域_Html_Textbox_Input_Label - Fatal编程技术网

Html 是否可以在<;标签>;领域

Html 是否可以在<;标签>;领域,html,textbox,input,label,Html,Textbox,Input,Label,对于我正在进行的调查,我有一系列可选的“写入”值 这些基本上是一个单选按钮,在回答字段中有一个文本框——其想法是你可以切换按钮并在框中写入内容 我想做的是,每当用户点击文本字段时,切换单选按钮——这似乎是一个很有意义的用例 这样做: <input type="radio" id="radiobutton"><label for="radiobutton">Other: <input type="text" id="radiobutton_other"><

对于我正在进行的调查,我有一系列可选的“写入”值

这些基本上是一个单选按钮,在回答字段中有一个文本框——其想法是你可以切换按钮并在框中写入内容

我想做的是,每当用户点击文本字段时,切换单选按钮——这似乎是一个很有意义的用例

这样做:

<input type="radio" id="radiobutton"><label for="radiobutton">Other: <input type="text" id="radiobutton_other"></label>
其他:
在Chrome上运行良好(我猜,其他WebKit浏览器也是如此),但Firefox中存在奇怪的选择问题,所以我认为这是一种非标准的做法,我应该远离


有没有一种方法可以在不使用JavaScript的情况下复制此功能?我有一个onclick函数可以使用,但我们正试图使我们的网站对那些可能运行NoScript类型的东西的人有用。

将输入放在标签中实际上有一个稍微不同的含义。它不会使输入本身成为一个标签,而是隐式地将标签与输入关联起来,就像它们被一个
/
id
链接一样

但是,只有当标签还没有覆盖该属性的
for
属性时,才会发生这种情况(请参见:“当存在时,此属性的值必须与同一文档中某个其他控件的id属性的值相同。如果没有,则定义的标签与元素的内容相关联。”)。根据规范,不清楚当
的包含和
都存在时会发生什么

(而且它在IE中也不起作用,这使得这一点在实践中毫无意义。)

不,您需要为此编写一些脚本

<input type="radio" id="radiobutton">
<label for="radiobutton_other">Other:</label>
<input type="text" id="radiobutton_other">

<script type="text/javascript">
    var other= document.getElementById('radiobutton_other');
    other.onchange=other.onkeyup= function() {
        if (this.value!=='')
            document.getElementById('radiobutton').checked= true;
    };
</script>

其他:
var other=document.getElementById('radiobutton_other');
other.onchange=other.onkeyup=function(){
如果(此.value!='')
document.getElementById('radiobutton')。checked=true;
};
它(标签内的输入)与HTML 4.01一样好。我在代码中看到的一个潜在问题是,在您的示例中,两个无线电元素具有相同的ID。元素ID在HTML和XHTML文档中必须是唯一的,您应该使用
name
属性来标识无线组


如果更改后仍有问题,则必须将输入移到
元素外部,并使用脚本。

不确定为什么需要在标签内部使用它;为什么是单选按钮而不是复选框呢?我不想使用复选框,因为我有一个多选题,应该只得到一个答案。例如:是、否和其他[填写]。我在标签中使用它,这样如果有人在文本字段中单击,单选按钮就会被勾选——这在Chrome中有效,但在没有JavaScript的Firefox中无效。我希望有一种方法可以让它正常工作。两个元素没有相同的id。