1

更新

我正在尝试使用 onClick 函数在 html 中添加一个包含文本框和简单文本的组

这是按钮的html部分

    <div id="dynamicForm">
        <input type="submit" name="Add_fields" value="+" onclick="generateRow()">
    </div>

和js

    <script>
function generateRow()
{
    document.getElementById('dynamicForm').innerHTML +='
                    <input name="dneven" type="text" width="30"/>
                        дневен
                    <select name="zapl">
                        <option selected="selected" value="3">-----</option> 
                        <option 1>платен</option>
                        <option 2>неплатен</option>
                    </select>
                        отпуск от  
                    <select name="god">
                        <option selected="selected" value="11">---</option>
    <option 1>2011</option>
    <option 2>2012</option>
                    </select>г.
                ';
}
</script>

但它什么也没做。我的错误在哪里,以及如何让按钮在按下一次后消失?我会提前感谢您的所有帮助。

4

2 回答 2

3

你有一个语法错误,因为你的引号。

innerHTML+="<input name="name" type="text" width="30"/> some text <input name="name" type="text" width="30"/>";

这是一个语法正确的版本。注意字符串是单引号,这意味着双引号的 HTML 属性不会意外终止字符串。

innerHTML+='<input name="name" type="text" width="30"/> some text <input name="name" type="text" width="30"/>';

如果你仍然卡住,你可能需要给我们更多的代码——你是用innerHTML一个元素的实际 innerHTML 的简写,还是它是在某处声明的变量?

更新

我没有在任何地方声明innerHTML

如果要将 HTML 字符串添加到元素,则需要使用:

document.getElementById('myElementId').innerHTML += 'html string';

就像放

innerHTML += 'html string';

创建一个隐式全局变量(以及错误,因为您试图附加到尚不存在的东西)。

更新

我想在按钮之后插入 HTML

HTML:

<div id="dynamicForm">
    <input type="submit" name="Add_fields" value="+" onclick="generateRow()">
</div>

JS:

function generateRow() {
    document.getElementById('dynamicForm').innerHTML += '<input name="name" type="text" width="30"/> some text <input name="name" type="text" width="30"/>';
}

稍后,您可能希望开始创建元素并将它们附加到 DOM,而不使用字符串,并在脚本而不是 HTML 中添加事件处理程序——但这应该可以帮助您入门。

更新

JavaScript 中的字符串中不能有换行符,因此您需要一行或大量附加。这里的工作示例

于 2012-09-13T13:06:37.617 回答
1

用户发电机

  1. 创建jtag:

    var jtag = $j.tagArray([
        $j.inputText({ name: 'dneven', width: 30 }),
        'дневен',
        $j.select([
            $j.option({ selected: 'selected', value: '3', child: '------' }),
            $j.option({ value: '1', child: 'платен' }),
            $j.option({ value: '2', child: 'неплатен' })
        ]),
        'отпуск от ',
        $j.select({
            name: 'god',
            child: [
                $j.option({ selected: 'selected', value: '11', child: '------' }),
                $j.option({ value: '1', child: '2011' }),
                $j.option({ value: '2', child: '2012' })
            ]
        })
    ]);
    
  2. 获取html代码

    var htmlCode = jtag.html();
    // jtag.html() returns:
    // <input name="dneven" width="30" type="text" ></input>дневен<select><option selected="selected" value="3" >------</option><option value="1" >платен</option><option value="2" >неплатен</option></select>отпуск от <select name="god" ><option selected="selected" value="11" >------</option><option value="1" >2011</option><option value="2" >2012</option></select>
    
  3. 将 HTML 代码插入现有标签

    document.getElementById('dynamicForm').innerHTML += htmlCode;
    
于 2012-09-25T01:07:26.050 回答