如果选项文本包含选择,请选择框验证

时间:2014-01-30 01:31:40

标签: javascript jquery html validation

如果我有一个选择框,文本选择(插入插件类型)

例如,使用文本“Select Case and Clip”作为默认选项以及其他5个选择框,我想仅在没有选择框包含单词“Select”时验证此表单。

这是使用Virtuemart,并且无法确保正确选择选项。

我的想法是,使用上面的方法,在提交

上的选项文本中找到值Select
 <select name="customPrice[0][27]" id="customPrice027">
     <option value="265">Select Case &amp; Clip</option>
     <option value="266">$25.00 - Black - Large - 1</option>
     <option value="267">$0.00 - Black - None - 2</option>
     <option value="268">$10.00 - Beige - Small - 3</option>
     <option value="269">$20.00 - Beige - Large - 4</option>
     <option value="270">$0.00 - Beige - None - 5</option>
     <option value="271">$10.00 - Blue - Small - 6</option>
     <option value="272">$20.00 - Blue - Large - 7</option>
     <option value="273">$0.00 - Blue - None - 8</option>
     <option value="274">$10.00 - Gray - Small - 9</option>
     <option value="275">$20.00 - Gray - Large - A</option>
     <option value="276">$0.00 - Gray - None - B</option>
     <option value="277">$20.00 - Red - Large - R</option>
     <option value="278">$20.00 - Olive Drab - Large - D</option>
 </select>

我的问题是这是动态生成的,所以我无法验证并让第一个选项包含0值。

我认为使用regEx可能是我在帖子中找到“选择”一词的方法。

道歉,如果这是愚蠢的(我是jQuery的初学者)。

下面是我的代码,尝试添加一个控制台消息,说明有一个选择框,文本中包含“选择”

    $(document).ready(function () {

       if ($("select").indexOf("Select") >= 1) {
          console.log('Select is Selected');
       }       

    });

这里有指针吗?我也希望在允许它这样做之前按下提交按钮进行验证。

更新

我的代码是依赖的,必须在选择按钮时停止表单提交。我知道提交按钮的ID,类型,名称,标题和值(预定义)

这是6个盒子中的一个,所有相同的条件适合并触发此消息。

这是我的代码,它不会停止提交。如果需要网站示例,我可以在私人消息中发送链接。

     $(document).ready(function () {

       $( ".addtocart-button" ).click(function() {

        if($("option:contains('Select')").length){
           event.preventDefault();
           console.log("Select found");
        }


    });

});

3 个答案:

答案 0 :(得分:0)

使用contains选择器

$("form").submit(function(e){
    if($("#customPrice027 option:selected:contains('Select')").length){
       e.preventDefault();
       alert("found");
    }
});

JS小提琴: http://jsfiddle.net/QcEbL/1/

修改后可使用您提供的代码

$( ".addtocart-button" ).click(function(e) {

    if($("#customPrice027 option:selected:contains('Select')").length){
       e.preventDefault();
       console.log("Select found");
    }
});

JS小提琴: http://jsfiddle.net/QcEbL/2/

答案 1 :(得分:0)

如果您可以使用option text

,请使用value在选择框中查找选择字
$('#sub').on('click', function() { 
   var selectval = $('#customPrice027').val();
   if(selectval == '265') { 
      alert("Gotcha!");
   }
});

请参阅fiddle

希望它有所帮助!

答案 2 :(得分:0)

听起来您希望用户选择默认值以外的其他内容,如果是这样,请检查所选选项的文本

var valid = true;

$('select').each(function() {
    if ($('option:selected', this).text().indexOf('Select') != -1) valid = false;
    return valid;
});

FIDDLE