クライアント側のフォーム検証にLiveValidationを使用しています。http://livevalidation.com/examples
Select2が適用された複数選択フォーム フィールドもあります。
問題は、そのSelect2フィールドを空のままにしておくと (何も選択しない)、[送信] ボタンを押した後にフォームが他のフォーム フィールドを検証せずに送信されることです。
しかし、Select2 フィールドで何かを選択してフォームを送信しようとすると、LiveValidationはフォーム内の他のフィールド (Select2 フィールドを含む) を検証しようとし、それらが検証に失敗すると、フォームは送信されず、ユーザーに確認を求めます。最初にエラーを修正します。
更新:複数選択フォーム フィールドから Select2 を削除しても、LiveValidation は空のままにするか、何も選択しないと検証をスキップします。
Select2が適用された選択フィールド(選択のオプションに、PHP 関数 getSelectOptions を使用して、テーブル内の 1 つの列の行の値を入力します):
<form id="myform" name="myform" method="post" action="myscript.php">
...
<select id="myselect" name="myselect[]" multiple="multiple">
<?php getSelectOptions("table_name", "column_name"); ?>
</select>
...
</form>
ファイルの前半でSelect2をその選択フィールドに適用する方法は次のとおりです。
$(function()
{
...
$('#myselect').select2({ placeholder: "Select items" });
...
});
そして、ここで、Select2 の後に LiveValidation を選択フィールドに適用します( Validate.Presenceを追加することで、選択フィールドが空であってはならない / 値を持つ必要があることを伝えています):
$(function()
{
...
var myselect = new LiveValidation("myselect", { onlyOnSubmit: true });
myselect.add(Validate.Presence);
...
});