获取selectmenu jquery的选定值

时间:2013-11-14 08:20:49

标签: jquery jquery-ui

我有一个带有几个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创建一个小提琴。如果我只使用下拉列表验证创建一个小提琴,它可以正常工作。我认为,当它的选择菜单时,我们是否有任何单独的方法来获得所选值? 有人可以告诉我我做错了什么并指导我这个吗? 感谢

2 个答案:

答案 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一起使用的有用信息。然后,您可以添加自定义方法以检查下拉列表是否可见。