简体   繁体   English

在下拉菜单周围创建边框

[英]Create border around dropdown

Problem: I would like to create a border surrounding a drop-down box if left blank when the user enters a zip code. 问题:如果用户输入邮政编码时留空,我想在下拉框周围创建边框。 Otherwise, leave it how it is. 否则,保留原样。

Currently, how it works is if the user enters a zip code and selects the submit, an alert will pop up and results will not be displayed until user selects the miles. 当前,它的工作方式是:如果用户输入邮政编码并选择提交,则将弹出警报,并且直到用户选择里程才显示结果。 This only occurs if user selects to find a locations using a zip code. 仅当用户选择使用邮政编码查找位置时,才会发生这种情况。 Otherwise, it will populate the results. 否则,它将填充结果。

Here is the form along with the script: 这是表格以及脚本:

 $(document).ready(function(){ var $zip = $('#zip'); var $city = $('#city'); var $hospital = $('#hospital'); var $miles = $('#miles'); $zip.on("change",function(){ $('#city option[value=""]').prop('selected',true).trigger('input'); $hospital.val('').trigger('input'); }); $city.on("change",function(){ $zip.val('').trigger('input'); $miles.val('').trigger('input'); }); $hospital.on("change",function(){ $zip.val('').trigger('input'); $miles.val('').trigger('input'); }); $zip.one("change", function(){ $miles.val('').trigger('input'); }); }); function checkTextField() { var distance = document.forms["UrgentCareSearch"]["distance"].value; var zip = document.forms["UrgentCareSearch"]["zip"].value; if(zip && !distance){ var alertMessage = "Please Select Distance When You Are Entering A Zip Code."; alert(alertMessage); return false; //Does not submit form } else return true; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script> <div class="panel panel-default"> <div class="panel-body"> <form name="UrgentCareSearch" ng-submit="SearchUrgentCare(searchParam);" novalidate role="form"> <div class="form-group"><input class="form-control" id="hospital" ng-model="searchParam.HospitalName" placeholder="Hospital Name" type="text" /></div> <div class="form-group"> <select class="form-control" id="city" ng-model="searchParam.City"> <option disabled="disabled" selected="selected" value="">City</option> <option value=""></option> <cfoutput query="HospCityFind"> <option value=#officecity#>#officecity#</option> </cfoutput> </select></div> <hr /> <div style="margin-top:-10px; margin-bottom:10px; text-align:center; font-size:8pt! important">* or Search by Zip code radius *</div> <div class="row"> <div class="col-xs-7 no-right-padding"> <div class="form-group"> <div class="input-group"><!---<select class="form-control" name="distance" ng-model="searchParam.Distance" ng-options="mile.value for mile in miles"></select>---> <select class="form-control" id="miles" name="distance" ng-model="searchParam.Distance"> <option value={{v.value}} ng-repeat="(k , v) in miles track by $index">{{v.value}}</option> </select> <div class="input-group-addon">miles</div> </div> </div> </div> <div class="col-xs-5 no-left-padding widthZip"> <div class="form-group"><input allow-pattern="[\\d\\W]" class="form-control" id="zip" maxlength="5" ng-model="searchParam.Zip" placeholder="Zip code" type="text" /></div> </div> </div> <div class="form-group"><input class="btn btn-warning btn-block" onclick="return checkTextField();" ng-click="gotoElement('SearchResultsAnchor');" type="submit" value="Search" /></div> </form> </div> </div> 

Ok, this should work. 好的,这应该可以。 Modified you checkTextField() function to highlight miles field if it is empty 修改了checkTextField()函数以突出显示英里字段(如果为空)

document.getElementById("miles").style.border = " solid #000000" document.getElementById(“ miles”)。style.border =“固体#000000”

Plus your miles dropbox has oninput tag as so 另外,您的Miles Dropbox也具有oninput标签

oninput = "unHighlight()" Which calls the un-Highlight function to remove the box in case the value of it anything other than "". oninput =“ unHighlight()”,如果其值不是“”,则调用unHighlight函数以删除该框。

reference: http://www.w3schools.com/jsref/event_oninput.asp http://www.w3schools.com/js/js_htmldom_eventlistener.asp 参考: http : //www.w3schools.com/jsref/event_oninput.asp http://www.w3schools.com/js/js_htmldom_eventlistener.asp

 $(document).ready(function() { var $zip = $('#zip'); var $city = $('#city'); var $hospital = $('#hospital'); var $miles = $('#miles'); $zip.on("change", function() { $('#city option[value=""]').prop('selected', true).trigger('input'); $hospital.val('').trigger('input'); }); $city.on("change", function() { $zip.val('').trigger('input'); $miles.val('').trigger('input'); }); $hospital.on("change", function() { $zip.val('').trigger('input'); $miles.val('').trigger('input'); }); $zip.one("change", function() { $miles.val('').trigger('input'); }); }); function checkTextField() { var distance = document.forms["UrgentCareSearch"]["distance"].value; var zip = document.forms["UrgentCareSearch"]["zip"].value; if (zip && !distance) { var alertMessage = "Please Select Distance When You Are Entering A Zip Code."; document.getElementById("miles").style.border = " solid #000000" alert(alertMessage); return false; //Does not submit form } else return true; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.min.js"></script> <div class="panel panel-default"> <div class="panel-body"> <form name="UrgentCareSearch" ng-submit="SearchUrgentCare(searchParam);" novalidate role="form"> <div class="form-group"> <input class="form-control" id="hospital" ng-model="searchParam.HospitalName" placeholder="Hospital Name" type="text" /> </div> <div class="form-group"> <select class="form-control" id="city" ng-model="searchParam.City"> <option disabled="disabled" selected="selected" value="">City</option> <option value=""></option> <cfoutput query="HospCityFind"> <option value=#officecity#>#officecity#</option> </cfoutput> </select> </div> <hr /> <div style="margin-top:-10px; margin-bottom:10px; text-align:center; font-size:8pt! important">* or Search by Zip code radius *</div> <div class="row"> <div class="col-xs-7 no-right-padding"> <div class="form-group"> <div class="input-group"> <!---<select class="form-control" name="distance" ng-model="searchParam.Distance" ng-options="mile.value for mile in miles"></select>---> <select class="form-control" id="miles" name="distance" ng-model="searchParam.Distance" oninput = "unHighlight()"> <option value={{v.value}} ng-repeat="(k , v) in miles track by $index">{{v.value}}</option> </select> <div class="input-group-addon">miles</div> </div> </div> </div> <div class="col-xs-5 no-left-padding widthZip"> <div class="form-group"> <input allow-pattern="[\\d\\W]" class="form-control" id="zip" maxlength="5" ng-model="searchParam.Zip" placeholder="Zip code" type="text" /> </div> </div> </div> <div class="form-group"> <input class="btn btn-warning btn-block" onclick="return checkTextField();" ng-click="gotoElement('SearchResultsAnchor');" type="submit" value="Search" /> </div> <script> function unHighlight() { var miles = document.getElementById("miles").value; try{ if(miles != ""){ document.getElementById("miles").style.border = "none" } } catch(err) { document.getElementById("miles").style.border = "none" } } </script> </form> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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