我有一个带有几个drodowns的表单,这些表单是使用selectmenu的样式。这些drodowns最初是隐藏的。在某些条件下,它将显示。所以我需要检查下拉列表是否显示,用户应该从中选择一个值,然后只允许他提交表单。 如果用户未选择任何值,则应显示错误,并且不应提交表单。
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>
在上面的代码中,如果没有选择任何值,则突出显示但不显示错误。它应该从select的title属性中获取错误。在价值的变化上,它提醒新的价值。但是再次提交时,该值显示为null。 我不知道如何用selectmenu创建一个小提琴。如果我只使用下拉列表验证创建一个小提琴,它可以正常工作。我认为,当它的选择菜单时,我们是否有任何单独的方法来获得所选值? 有人可以告诉我我做错了什么并指导我这个吗? 感谢
答案 0 :(得分:0)
您在!input.val()上显示错误消息,这意味着没有值或值= 0。 为什么不在if(!input.val()){}
中提醒 if (!input.val()) {
alert("Ther is no value!"); // new alert()
input.addClass('required');
var $msg = input.attr('title');
input.after('<ul class="innererrormessages"><li>'+$msg+'</li></ul>');//-- the error message is also displayed properly
}
答案 1 :(得分:0)
尝试使用像jquery验证这样的库。在this question中,您将找到有关如何使其与selectmenu一起使用的有用信息。然后,您可以添加自定义方法以检查下拉列表是否可见。