0

HTMLページに入力ボックスを挿入するために、jqueryを使用してJavaScriptファイルを作成しています。ただし、ページに入力を挿入すると、数秒以内に入力ボックスが消えます。なぜそうなるのか不思議です。

function injectArea(data) {
    $('#test').prepend('<input type="text" class="input-block-level" placeholder=" " value="hi">');
}

PS私はtwitterのブートストラップを使用しています。それが問題の原因かどうかはわかりません。

私が関数を呼び出すとき、私はこれを行います:

$(document).ready(function(){
    $(#button).click(injectArea);
});

これは私のhtmlです:

<form class="form">
    <button id ="button" class="btn btn-large btn-primary">Update Profile</button>
</form>
4

2 に答える 2

1

このフィドルは、使用方法に問題がないことを示していprependます。問題は他の場所から来る必要があります。私の推測では、呼び出してから数秒後に起動する AJAX コールバックがあり、これにより、変更をオーバーライドしている可能性があります#test

フィドル:
http://jsfiddle.net/jy43A/


アップデート:

あなたが言った:

何らかの理由で、ページが自動的に更新されます。

#button<button>タグです。それをクリックすると、フォームが送信され、ページが更新されます (現在のページをターゲットにしている場合)。preventDefault();送信のデフォルト アクションを停止するために使用します。

function injectArea(data) {
    data.preventDefault();
    $('#test').prepend('<input type="text" class="input-block-level" placeholder=" " value="hi">');
}

テキスト ボックスが表示され、ページが更新されることがわかります。これはあなたのケースでは異なって見えますが、おそらくこれと同じ行に沿っているでしょう:

preventDefault() なしの効果:
http://jsfiddle.net/jy43A/3/

そして、これは機能します:

preventDefault() を使用した効果:
http://jsfiddle.net/jy43A/2/

より詳しい情報:

preventDefault 情報:
http://api.jquery.com/event.preventDefault/

于 2013-04-09T02:16:28.483 に答える
0

正しい方法を使用していると確信していますか?

prepend:

<div id="a"></div>

$("#a").prepend("<span>");

<div id="a">
    <span></span>
</div>

insertBefore:

<div id="a"></div>

$("#a").insertBefore("<span>");

<span></span>
<div id="a"></div>
于 2013-04-09T02:14:31.687 に答える