selectmenuを使用したスタイルであるいくつかのドローダウンを含むフォームがあります。これらのドロダウンは最初は非表示になっています。特定の条件で表示されます。したがって、ドロップダウンが表示されているかどうかを確認する必要があります。ユーザーはそこから値を選択し、フォームの送信のみを許可する必要があります。ユーザーが値を選択していない場合、エラーが表示され、フォームは送信されません。
selectmenuのJSファイル
if ($.fn.selectmenu) {
$('select.dd-select').selectmenu({
style:'dropdown',
maxHeight: 300,
transferClasses: true
});
}
検証用JSファイル
$('#submitbutton').click(function(){
var returnValue = true;
$('#form1 .required').filter(':visible').each(function () {
inputVal = $(".dd-default option:selected").val();
alert(inputVal); -- displaying null
var input = $(this);alert(input.val()); -- displaying null
input.next('ul.innererrormessages').remove();
input.removeClass('required');
if (!input.val()) {
input.addClass('required');
var $msg = input.attr('title');
input.after('<ul class="innererrormessages"><li>'+$msg+'</li></ul>'); --error message not shown
returnValue = false;
}
});
});
$('#form1 .required').change(function () {
var input = $(this);
input.next('ul.innererrormessages').remove();
input.removeClass('required');
alert(input.val());-- displays the value
if (!input.val()) {
input.addClass('required');
var $msg = input.attr('title');
input.after('<ul class="innererrormessages"><li>'+$msg+'</li></ul>');-- the error message is also displayed properly
}
});
HTML
<select id="dd1" name="dd1" class="required dd-select" title="Please select to continue.">
<option value=""> --</option>
<%= List %>
</select>
上記のコードでは、値が選択されていない場合、強調表示されますが、エラーは表示されません。選択のタイトル属性から取得する必要があるエラー。値が変更されると、新しい値が警告されます。しかし、再度送信すると、値は null として表示されます。selectmenu を使用してこのためのフィドルを作成する方法がわかりません。ドロップダウン検証のみでフィドルを作成すると、正常に機能します。その選択メニューのときに、選択した値を取得する別の方法があると思いますか? 誰かが私が間違っていることを教えてくれますか? ありがとう