2

list.php に HTML フォームがあり、テキスト ボックス (コードの下の「項目」) から check.php にデータを送信します。この check.php は、入力されたテキストが空または空白のみではないことを検証します。検証後、入力されたテキストが表示されるように list.php にリダイレクトします。list.php は以下です。テキストボックスに有効なテキストが入力された場合にのみ「追加」ボタンを有効にしたい。この機能は、おそらく JavaScript ではなく、php で実現したいと考えています。

フォームで「disabled=\"disabled\」を使用できますが、これは検証によってはリアルタイムの無効化では機能しません。

<form action="check.php" method="post">

<input name="item" type="text" size="25" autofocus="autofocus" />

<input type="submit" value="Add" id="add" />

</form>
4

2 に答える 2

0

あなたは言う:

この機能は、おそらく JavaScript ではなく、php で実現したいと考えています。

残念ながら、「リアルタイム」が必要な場合は、JavaScript が必要になります。PHP コードに対して AJAX 呼び出しを行い、検証を確認するために必要になります。

したがって、A) 「リアルタイム」でまったく検証しないか、B) 何らかの形で JavaScript を使用します。

B) を選択して JavaScript を使用し、空の文字列または空白をチェックするだけでよいと仮定すると、このクライアント側のすべてを JavaScript で実行でき、サーバー呼び出しもまったく必要ありません。真に「リアルタイム」にします。

そこで、サーバー呼び出しに依存せずに JavaScript (jQuery) を使用する私のソリューションを次に示します。これは現在の実装には適していないかもしれませんが、そうである場合に備えて、これは役立つかもしれません。

JSFiddle:
http://jsfiddle.net/VKfrw/1/

JavaScript:

function hasWhiteSpaceOrEmpty(s) 
{
  return s == "" || s.indexOf(' ') >= 0;
}

function validateInput()
{
    var inputVal = $("#myInput").val();
    if(hasWhiteSpaceOrEmpty(inputVal))
    {
        //This has whitespace or is empty, disable the button
        $("#add").attr("disabled", "disabled");
    }
    else
    {
        //not empty or whitespace
        $("#add").removeAttr("disabled");
    }
}

$(document).ready(function() {
    $("#myInput").keyup(validateInput);
});

HTML:

<!-- give this guy an ID -->
<input id="myInput" name="item" type="text" size="25" autofocus="autofocus" />

この実装ではjQueryを使用します。

于 2013-05-08T02:08:53.350 に答える