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>

しかし、それは何もしません。私の間違いはどこにありますか?また、ボタンを1回押した後にボタンを消すにはどうすればよいですか?よろしくお願いします。

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では文字列に改行を含めることはできないため、1行または多数の追加が必要です。ここでの実例

于 2012-09-13T13:06:37.617 に答える
1

ユーザーjnerator

  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 に答える