【问题标题】:How to check drop-down values using JavaScript如何使用 JavaScript 检查下拉值
【发布时间】:2014-03-05 02:31:04
【问题描述】:

我在 Gridview 中有下拉菜单和文本框,因此我想在单击按钮时检查以下内容: (1) 先检查是否从下拉列表中选择了NOTHING(下拉选项为YES、NO 或NA)。如果未选择任何内容,我想显示类似“请从下拉列表中进行选择”的消息 (2) 如果下拉菜单中的选择为 NO 并且文本框为空白或空,那么我想显示消息:“请提供 cmets”

第一个代码检查文本框是否为空白并且它可以工作,第二个代码检查是否没有从下拉列表中进行选择并且那个也可以正常工作,那么我如何在这两个代码之间进行组合?我想在按钮单击时执行这两个代码,现在它只调用第一个代码。请帮忙。谢谢。 这是我检查文本框是否为空白的代码:

<script type ="text/javascript">
    function Validate() {
        var flag = false;
        var gridView = document.getElementById('<%= GridView1.ClientID %>');

        for (var i = 1; i < gridView.rows.length; i++) {
            var selects = gridView.rows[i].getElementsByTagName('select');
            var areas = gridView.rows[i].getElementsByTagName('textarea');
            if (selects != null && areas != null) {
                if (areas[0].type == "textarea") {
                    var txtval = areas[0].value;
                    var selectval = selects[0].value;
                    if (selectval == "No" && (txtval == "" || txtval == null)) {

                        flag = false;
                        break;
                    }
                    else {
                        flag = true;
                        document.getElementById('<%=btnSubmit.ClientID%>').style.visibility = 'visible';
                    }
                }
            }
        }
        if (!flag) {
            alert('Please note that comments are required if you select "No" from the dropdown box.  Thanks');
            document.getElementById('<%=btnSubmit.ClientID%>').style.visibility = 'hidden';
        }
        return flag;
    }
</script>

这是检查下拉菜单的代码

<script type="text/javascript">
      function validate_DD() {
          var flag = true;
          var dropdowns = new Array(); //Create array to hold all the dropdown lists.
          var gridview = document.getElementById('<%=GridView1.ClientID%>'); //GridView1 is the id of ur gridview.
          dropdowns = gridview.getElementsByTagName('Select'); //Get all dropdown lists contained in GridView1.
          for (var i = 0; i < dropdowns.length; i++) {
              if (dropdowns.item(i).value == 'Select') //If dropdown has no selected value
              {
                  flag = false;
                  break; //break the loop as there is no need to check further.
              }
          }
          if (!flag) {
              alert('Please select either Yes, No or NA in each dropdown and click the Save button again.  Thanks');
              document.getElementById('<%=btnSubmit.ClientID%>').style.visibility = 'hidden';

          }

          return flag;

      }
</script>

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    试试这个:

    <select id="ddlCars">
      <option value="1">Honda</option>
      <option value="2" selected="selected">Toyota</option>
      <option value="3">BMW</option>
    </select>
    

    访问下拉菜单:

    To get the value:
    var el = document.getElementById("ddlCars");
    var val = el.options[el.selectedIndex].value; // val will be 2
    
    To get the text:
    var el = document.getElementById("ddlCars");
    var car = el.options[el.selectedIndex].text; //car will be Toyota
    

    【讨论】:

    • 这没有帮助,我在 gridview 中有我的 dropdonw 和文本框。
    • 你能在浏览器中调试看看area里面有没有textareas吗?否则,我会评论 textarea 并尝试查看我可以在 grdid 的特定行中读取下拉列表的值
    • 好的,我刚刚更新了我的问题。我已经发布了 2 个 js 代码,第一个检查 texbox 是否为空白,第二个检查下拉列表,两者都工作正常。所以我的问题是如何将两者结合起来?因此,一旦单击按钮,它就会执行两个代码。谢谢。
    • 这里有什么帮助吗?
    • 我会提醒 dropdowns.length 以查看数组中是否有任何内容。如果是,则提醒 JSON.Stringify 以打印出每个下拉列表中的内容。有什么地方可以让我测试和玩你的代码吗?你也可以在这里测试你的作品jsfiddle.net
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2017-12-10
    相关资源
    最近更新 更多