javascript - 生成 HTML 表单

标签 javascript radio-button innerhtml

我正在尝试使用 HTML 表单和一些 JavaScript 执行以下操作:

一个复选框,选中时会动态生成两个单选按钮和一个显示“复选框 1 已选中”的文本。

逻辑(参见 jsFiddle: http://jsfiddle.net/9jPcP/ )确实有效,但由于某种原因,无法选择两个单选按钮。当我点击任一单选按钮时,没有任何反应。如果你们中的任何人对我可能做错的地方提出一些意见,我将不胜感激。

注意:该序列在 jsFiddle 上似乎不起作用(单选按钮确实是动态生成的),但它在我的工作站上确实有效。

HTML代码:

<form name="input" action="" method="get">
<input type="checkbox" name="sequenceOP" id="sequenceOP14" onChange="displaySequence()">
Checkbox 1<br/>
<div id="displayText"></div>
<div id="variableSpdExhOptions"></div>
</form>

JavaScript:

function displaySequence(){
var displayVariableExhOptions = "";
var displayText = "";
if(sequenceOP14.checked){
displayText += "Checkbox 1 is checked";
displayVariableExhOptions += "<input type=\"radio\" name=\"exhOptions\" id=\"sequenceOP15\" onChange=\"displaySequence()\" >"
+ "Radio Box 1<br/>"
+ "<input type=\"radio\" name=\"exhOptions\" id=\"sequenceOP16\" onChange=\"displaySequence()\" >"
+ "Radio Box 2<br/>"
}
document.getElementById("variableSpdExhOptions").innerHTML = displayVariableExhOptions;
document.getElementById("displayText").innerHTML = displayText;
}

最佳答案

这是针对您的问题的解决方案:Fix JS Fiddle .

基本上错误的是你的 JS 被加载到 domReady 上然后被丢弃。

你想让它加载到头部。

代码在这里:

<head>
    <script type="text/javascript">
        //<![CDATA[ 

        function ds() {

            var displayVariableExhOptions = "";
            var displayText = "";
            if (document.input.sequenceOP14.checked) {
                displayText += "Checkbox 1 is checked";
                displayVariableExhOptions += "<input type=\"radio\" name=\"exhOptions\" id=\"sequenceOP15\" onChange=\"displaySequence()\" >" + "Radio Box 1<br/>" + "<input type=\"radio\" name=\"exhOptions\" id=\"sequenceOP16\" onChange=\"displaySequence()\" >" + "Radio Box 2<br/>"
            }
            document.getElementById("variableSpdExhOptions").innerHTML = displayVariableExhOptions;
            document.getElementById("displayText").innerHTML = displayText;
        }
    </script>
</head>

<form name="input" action="" method="get">
<input type="checkbox" name="sequenceOP" id="sequenceOP14" onChange="ds();">
Checkbox 1<br/>
<div id="displayText"></div>
<div id="variableSpdExhOptions"></div>
</form>

为了避免您担心 ID,让您自己更轻松一些:

<input type="checkbox" name="sequenceOP" id="sequenceOP14" onChange="ds(this);">

  function ds(obj) {

            var displayVariableExhOptions = "";
            var displayText = "";
            if (obj.checked) {

关于javascript - 生成 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16716703/

相关文章:

javascript - Electron 版Firebase Electron 邮件/密码身份验证

javascript - window.close() 在 Firefox 中不起作用

javascript - Bootstrap 管理面板单选按钮隐藏和显示

javascript - JQuery html() 与 innerHTML

javascript - jQuery Sortable 无法与 Twitter 嵌入推文一起使用

javascript - Fine-Uploader 多文件上传的上传顺序?

javascript - 选择单选按钮值时显示警报

html - 如何将 html 单选按钮垂直对齐到它的标签?

javascript - 通过在每个循环上调用 JavaScript 函数,通过 PHP 循环动态添加 <img> 标签

javascript - Chrome扩展读取当前页面的innerHTML?