在HTML中,使用Javascript创建新的单选按钮及其文本?

在HTML中,使用Javascript创建新的单选按钮及其文本?,javascript,html,forms,javascript-events,Javascript,Html,Forms,Javascript Events,我希望当选中表单(form1)的“是”单选按钮时,会出现一个新表单(form2),其中有两个单选按钮及其文本“是”和“否”。在form1的“Yes”按钮中有一个事件“onclick”,我用两个单选按钮设法使新表单出现,但我无法使它们的文本出现。由于单选按钮没有“innerHTML”,我尝试将文本添加为纯文本或“标签”,但它不起作用。 这是语法还是逻辑上的问题(不可能在创建按钮的同时创建文本)?谢谢你的帮助 在我的HTML正文中,我有以下内容: <form id="form1"> &l

我希望当选中表单(form1)的“是”单选按钮时,会出现一个新表单(form2),其中有两个单选按钮及其文本“是”和“否”。在form1的“Yes”按钮中有一个事件“onclick”,我用两个单选按钮设法使新表单出现,但我无法使它们的文本出现。由于单选按钮没有“innerHTML”,我尝试将文本添加为纯文本或“标签”,但它不起作用。 这是语法还是逻辑上的问题(不可能在创建按钮的同时创建文本)?谢谢你的帮助

在我的HTML正文中,我有以下内容:

<form id="form1">
<input type="radio" id= "form1_no" value="no" checked>
   <label for = "form1_no" >No</label>
<input type="radio" id= "form1_yes" value="yes" onClick= exam()>
   <label for = "form2_yes" >Yes</label>
</form> 

不
对
函数exam()是:


函数检查(){
var inputno=document.createElement(“输入”);
inputno.type=“收音机”;
inputno.id=“form2\u no”;
inputno.value=“否”;
inputno.onclick=function(){alert(“我在表单2中选择了No”)};
document.getElementById(“form2”).appendChild(inputno);//这正在工作
var inputyes=document.createElement(“输入”);
输入yes.type=“收音机”;
inputyes.id=“form2\u yes”;
inputyes.value=“是”;
inputyes.onclick=function(){alert(“我在表单2中选择了Yes”)};
document.getElementById(“form2”).appendChild(inputyes);//这正在工作
//现在,不起作用的代码是:
//第一个暂定(在单选按钮后添加“是”和“否”作为纯文本):
var textno=“否”;
文件.getElementById(“格式2_编号”).appendChild(文本编号);
var textyes=“Yes”;
document.getElementById(“form2_yes”).appendChild(textyes);
//第二个暂定(在单选按钮上添加“是”和“否”作为标签):
var labelno=document.createElement(“标签”);
labelno.for=“form2_no”;
labelno.innerHTML=“否”;
文件.getElementById(“格式2_编号”).appendChild(标签号);
var labelyes=document.createElement(“标签”);
labelyes.for=“form2_yes”;
labelyes.innerHTML=“是”;
文件.getElementById(“form2_yes”).appendChild(labelyes);
}      

类似的功能可以创建按钮和标签

<div id="radio_home"></div>

<script>

  var radio_home = document.getElementById("radio_home");

  function makeRadioButton(name, value, text) {

    var label = document.createElement("label");
    var radio = document.createElement("input");
    radio.type = "radio";
    radio.name = name;
    radio.value = value;

    label.appendChild(radio);

    label.appendChild(document.createTextNode(text));
    return label;
  }

  var yes_button = makeRadioButton("yesbutton", "yes", "Oh yea! do it!");
  radio_home.appendChild(yes_button);
</script>

var radio_home=document.getElementById(“radio_home”);
函数makeRadioButton(名称、值、文本){
var label=document.createElement(“标签”);
var radio=document.createElement(“输入”);
radio.type=“radio”;
radio.name=名称;
radio.value=值;
标签.儿童(收音机);
label.appendChild(document.createTextNode(text));
退货标签;
}
var yes_button=makeRadioButton(“yesbutton”、“yes”、“哦耶!做吧!”);
收音机_home.appendChild(是按钮);

谢谢。但这样做,我有一个问题。如果,在第一个表单上,我改变主意,选中“否”按钮,然后再次改变主意并选中“是”按钮,则将在第二个表单中创建两个新按钮,即第二个表单现在将有2个“是”按钮和2个“否”按钮……那么您在错误的时间将按钮添加到错误的表单中。这是一个新问题,你必须发布相关代码。没关系,我解决了这个问题。通过向
makeRadioButton
函数添加变量
id
,在其中添加
radio.id=id
,并对
var exist=document.getElementById(id)进行编码;如果(exist==null){
在您建议的
makeRadioButton
函数的内容之前和之后。
<div id="radio_home"></div>

<script>

  var radio_home = document.getElementById("radio_home");

  function makeRadioButton(name, value, text) {

    var label = document.createElement("label");
    var radio = document.createElement("input");
    radio.type = "radio";
    radio.name = name;
    radio.value = value;

    label.appendChild(radio);

    label.appendChild(document.createTextNode(text));
    return label;
  }

  var yes_button = makeRadioButton("yesbutton", "yes", "Oh yea! do it!");
  radio_home.appendChild(yes_button);
</script>