0

私はフォームを持っていて、以下に示すように、ページの読み込み時にボックス (テキストボックス、選択ボックス、ラジオボックス) に値を設定しています。

<script>
$(function() {
   $("#text").val(\''.$_GET['q'].'\');
   $("#category").val(\''.$_GET['cat'].'\');
});
</script>

しかし、主な問題は、最初のページが空のボックスでロードされ、1 秒後または 1 秒以上後に値がボックスにロードされることです。すべてのボックスに値が設定された後にページを表示するにはどうすればよいですか? これはjqueryにある必要があります。

PS私にphpソリューションを提供しないでください。可能であればjqueryソリューションのみ。

ありがとう。

4

1 に答える 1

1

$_GET が PHP 変数を参照し、それらの値を設定するために使用しているメソッドが完全に不必要に見えると仮定すると、なぜ jQuery で値を設定する必要があるのですか?

<input type="text" value="$_GET['q']" id="text" />

または要素の直後に配置されたプレーンjs

<script type="text/javascript">
    document.getElementById('test').value = $_GET['q'];
</script>

いくつかの奇妙なエスケープと集中をスキップし、すべての異なる引用符をあまり気にしませんでした.

jQuery は DOM とその中のすべてがロードされるまで待機するため、すでに jQuery ソリューションが用意されています。つまり、jQuery コードは、値を直接設定するだけでなく、要素が利用可能になるとすぐに単純な JavaScript を使用するよりも常に後で実行されます。

ユーザー エクスペリエンスや読み込み時間をまったく気にしない場合は、いつでもCSS でbodyタグを設定して、jQuery スクリプトで値を設定した直後に使用できます。これは jQuery ソリューションですが、悪いソリューションです。 !display:none$('body').show();

于 2012-07-22T16:36:11.820 に答える