0

我需要将选择菜单的 id 和选定值放在一起。有什么办法吗?我试过了,但我不能同时得到这两个。

$('#form1').submit(function () {
 $('.required').filter(':visible').each(function () {
    var input = $(this).val();
    if (!input) {
      $(".ui-selectmenu").addClass( "required" );
      var msg = input.attr('title');
      alert(msg); --- This will alert empty.
      alert(input.attr('id'));
      $(".ui-selectmenu").after('<ul class="error"><li>'+$msg+'</li></ul>');
    }
 });
});

我可以使用获取所选值的标题或 ID

$('.required')find(":selected").each(function(){
 var input = $(this).val();
 alert($(this).attr('title')); ---- This will alert the title.

});

HTML

<select id="test" name="test" class="required class1" title="Please select to continue.">

选择菜单

$('select.class1:not(select.class2)').selectmenu({
style:'dropdown',
maxHeight: 300,
transferClasses: true
});

但我需要遍历所有下拉列表并检查是否为空,如果为空则抛出显示错误。这就是为什么使用$('.required').filter(':visible')

有人可以告诉我我在这里做错了什么吗?

4

2 回答 2

0

您需要将input变量设置为下拉对象而不是下拉值。

尝试以下操作:

 $('#form1').submit(function () {
    $('.required').filter(':visible').each(function () {
        var input = $(this);
        var inputValue = $(this).find('option:selected').val();
        if (!inputValue) {
            $(this).addClass('required');
            var msg = input.attr('title');
            alert(msg);
            alert(input.attr('id'));
            $(this).after('<ul class="error"><li>'+ msg +'</li></ul>');
        }
    });
 });

现在它检查input.val()你的input对象是下拉对象。

编辑: Working JSFiddle

于 2013-11-11T09:24:51.703 回答
0
$('.required').each(function(){
if($(this).val()=='')
 {             
         alert($(this).attr('title'));
 }
});
于 2013-11-11T08:49:45.513 回答