简体   繁体   中英

How to check if the selected value of drop-down is set to No and Text-Box is blank using JavaScript

I have drop-down and text-box in a gridview and I am trying to check if the selected value of a drop-down is set to "No" and no comments is entered in the text-box then i want to show message. The requirement should be as long as the selected value of the drop down is set to No then comments must be entered in the text-box. My issue is that i am getting the message even if the drop-down is set to Yes or comments is provided when the drop down is set to No. Here is the code:

    function validate() {
        var flag = false;
        var gridView = document.getElementById('<%= GridView1.ClientID %>');

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

                        flag = false;
                        break;
                    }
                    else {
                        flag = true

                    }
                }
            }
        }
        if (!flag) {
            alert('Please note that comments is required if drop down is set to No.  Thanks');
            areas[i].focus();
        }
        return flag;
    }

</script>

You can do like this:

<script>
    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 inputs = gridView.rows[i].getElementsByTagName('input');
            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;
                    }
                }
            }
        }
        if (!flag) {
            alert('Please enter comments.  Thanks');

        }
        return flag;
    }
</script>

Try this:

$('#select').on('change', function () {

   var text = $(this).find(":selected").text();
   var textBox = $(this).parent().filter('input [name="InputName"]');
   if(text == "no" && textBox.val() =="")
   {
      \\display your message
   }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM