1

私はPHPの検証を行っており、フォームでw3.orgを読んでいました。「オプションが選択されていない場合、コントロールは成功せず、フォームの送信時に名前も値もサーバーに送信されません」というステートメントを誰でも明確にすることができます。これをテストするために、私は作成しました

<form method="get" action="#">
    <select name="select_name" >
       <option value="">Select one</option>
      <option value="one">Choice one</option>
       <option value="two" >Choice two</option>
       <option value="three">Choice three</option>
    </select>
</form>

GET 配列を出力すると、「select_name」という名前が常にサーバーに渡されていることがわかります。ラジオとチェックボックスの場合、これは当てはまりません。しかし、私はその声明が何を言おうとしているのか理解できません。選択オプション中に「名前でも値でもない」を渡すことは可能ですか?

4

1 に答える 1

2

あなたが引用した仕様:

オプションが選択されていない場合、コントロールは成功せず、フォームの送信時に名前も値もサーバーに送信されません。

...オプションが選択されていない場合の動作を示しますが、デフォルトでは、ほとんどのブラウザーは (ドロップダウン) 選択要素の最初のオプションを自動的に選択します。テスト ページで、ページの読み込み時に最初のオプション [1 つ選択] が自動的に選択されていることがわかりませんか? 最初のオプションの値が空文字列の場合、そのオプションを選択してフォームを送信すると、「select_name」という名前のリクエスト パラメータと空文字列の値が必要になります。

(ドロップダウンではない) 複数の要素を選択する場合:

<select name="select_name" multiple>

...デフォルトではオプションが選択されていないため、オプションを選択せず​​に送信すると、「select_name」リクエストパラメーターが取得されないことがわかります。

注: 質問に「PHP」というタグを付けましたが、これは PHP に関するものではありません。その時点でのフォーム コントロールの状態に応じてリクエストを形成するのはブラウザです。

于 2013-10-05T03:15:41.757 に答える