javascript - 如何在打开模式的同一按钮单击上验证选择字段?

标签 javascript jquery html twitter-bootstrap

我正在尝试验证一个选择,这是选择一个选项以继续该过程所必需的。如果没有选择任何选项,那么它应该给出一个警告框,否则它应该打开模态。在我的例子中,模态以任何一种方式打开。

<select  class="form-control" id="account_name"  name="account_name">
<option  value="">Select Customer..</option>
     <?php
    while ($rows = pg_fetch_assoc($result)) { ?>
          <option value="<?= $rows['address1'] . ' ' . 
              $rows['address2'] . ' ' . $rows['address3'] .' '.$name. '-' . 
              $rows['account_code']; ?>"><?= $rows['account_name']; ?>
          </option>
     <?php } ?>
 </select>

  <div class="wrapper1" id='business1'>
       <input type="submit" id="myBtn"  value="New Order" style="height:55px; width:170px; margin-left: -50px;" class="btn btn-success" />
  </div>

<!-- JQUERY -->

 $(document).ready(function () {
      $("#myBtn").click(function () {
         if ($("#account_name").val() === NULL){
            alert('Please select an option');           
         }
         else
         {
            $('#myModal').modal('show');
         }
      });
  });

使用此代码,模式不会显示在任何选择上,也不会显示警告框。

我也试过这样做

 <select  class="form-control" id="account_name" name="account_name" 
 required>

尽管此处应用了验证,但如果未选择任何选项,模式仍会在提交时打开。

最佳答案

javascript 区分大小写,因此 NULL 不为空。 Javascript 也试图提供帮助,并将变量(如 NULL)转换为字符串(如果它们不存在),因此您的代码说 if ($(...).val() === 'NULL') 这是从来都不是真的,因此模态出现了。 Javascript 还将任何错误值转换为错误...因此 null、''、0 和未定义都是错误的,我假设您没有使用 0 或 '' 作为您的选项之一,因此您可以简单地 if (!$ (...).val()), 而不是

关于javascript - 如何在打开模式的同一按钮单击上验证选择字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54704877/

相关文章:

javascript - isObject 测试到底是用来做什么的?

asp.net-mvc - jQuery ajax 方法的简单问题

jquery - 使用JQuery Validation Plugin,我想更改远程验证方法

jquery - 我如何创建像 youtube 一样带有悬停的 jQuery UI 按钮

javascript - Ember - 使用 View Click 事件触发 File Input 元素的单击

javascript - 如何使用reactJS 模拟此 jQuery 行为 : add/remove className from different divs

jquery - 迁移到knockout.js

html - 无论图像数量有多少,图像都会自动填充容器 div

html - 图像不会随着分辨率降低而缩小

javascript - 如何调用 Nashorn CompiledScript 中的方法?