0

入力ボックスの値を取得し、クエリ文字列として URL に渡します。次のように表示または非表示に制御されるデフォルト値「Enter Keywords(address....)」を取得したくありません。

    //**onClick and OnLostFocus (focus and blur) events on textareas and input textboxes**
   $('input[type="text"], textarea').focus(function () {
        defaultText = $(this).val();
        $(this).val('');
    });
    $('input[type="text"], textarea').blur(function () {
        if ($(this).val() == "") {
            $(this).val(defaultText);
        }
    }); 


<input name="KeywordBox" class="BasicSearchInputBox" type="text" size="300" value="Enter Keywords (address,city and state OR zipcode)"/> 

デフォルトのテキストではなく、ユーザー入力だけを取得するには?? jqueryで?

4

4 に答える 4

1

通常、入力フィールドにデフォルトのクラス名を追加し、ユーザーが入力したときにそれをクリアします。そうすれば、デフォルトの「透かし」テキストがそこにあるか、ユーザーデータがあるかがわかります。

于 2012-02-29T22:13:31.177 に答える
0

You can do it with something like:

function togglePrompt() {
  if (this.value == this.defaultValue) {
    this.value = '';
  } else if (this.value == '') {
    this.value = this.defaultValue;
  }
}

window.onload = function() {
  var el = document.getElementById('inp0');
  el.onfocus = togglePrompt;
  el.onblur = togglePrompt;
}


<input value="Enter text..." id="inp0">
于 2012-02-29T23:15:23.373 に答える
0

上記のコードは、実際にはデフォルト値 (プレースホルダー) を実行しません。誰かが最初にフィールドに「何でも」と入力し、次にフィールドから値をクリアすると、コードは「キーワードを入力してください...」ではなく「何でも」にリセットします。

http://archive.plugins.jquery.com/project/defaultvalueのようなプラグインが必要です

<input placeholder="Enter a username…" type="text">
<input placeholder="…and a password" type="password">
<script>
$(' [placeholder] ').defaultValue();
</script>

本当に自分で書きたい場合、最も簡単な手順は次のとおりです。

  • 入力フィールドにプレースホルダー プロパティを追加する
  • onfocus: input.value が input.placeholder と等しい場合、input.value をクリアします
  • onblur: input.value が空の場合、input.value を input.placeholder に設定します
于 2012-02-29T22:20:10.597 に答える
0

これを行う適切な方法はplaceholder、古いブラウザーを使用してフォールバックすることです。
現在の問題については、値を取得するときにそのデフォルトのテキストを確認できます。何かのようなもの:

$('form').submit(function(){
    if (~$('input').val().indexOf(defaultText)) {
        // Not found, do your ajax stuff
    }
});
于 2012-02-29T22:17:46.570 に答える