サーバー側(PHP)とクライアント側(LiveValidation- http://www.livevalidation.com/)の両方の検証を使用しているWebサイトで作業しています。LiveValidationは、複数の選択ボックスを除くすべての入力フィールドで機能します。コードがどのように見えるかについての一般的な考え方は次のとおりです(変数名を一般名に置き換えました):
<select name="array[]" id="array" multiple>
<option value="Val1" <?php if( @in_array( 'Val1', @$_POST['array'] ) ) { echo 'selected="selected"'; } ?>>Val1</option>
<option value="Val2" <?php if( @in_array( 'Val2', @$_POST['array'] ) ) { echo 'selected="selected"'; } ?>>Val2</option>
</select>
<script type="text/javascript">
var arr = new LiveValidation('array', { validMessage: ' ', wait: 500});
arr.add( Validate.Presence, { failureMessage: ' ' } );
arr.add( Validate.Exclusion, { within: [ "" ], failureMessage: ' ' } );
</script>
今、私は機能を変更せずに使用してみましたvar arr = new LiveValidation('array'
(var arr = new LiveValidation('array[]'
とにかく、LiveValidationは名前ではなくidを使用していると確信しています)。なぜそれが機能しないのか誰かが知っていますか?
また、コード内の何かが本当にずれているように思われる場合は、私がWeb開発にかなり慣れていないので、遠慮なく知らせてください。私は建設的な批判をかなりよく受け止めています。:)