javascript - 清除文本字段

标签 javascript html coldfusion

问题:您好,我希望能够在输入值时清除字段。

表格如下:

enter image description here

目前,当用户选择一个城市时。如果邮政编码字段中有值,则邮政编码字段值将被删除,反之亦然。但是,当我尝试对同一医院名称字段应用相同的逻辑时,该值没有留空,而是保留在那里。

以下是我在用户输入邮政编码时所做的,城市下拉列表将被空白,反之亦然:

$(document).ready(function(){
    $('#zip').on("change",function(){
        $('#city option[value=""]').prop('selected',true).trigger('input');
        /*console.log('input');*/
   });

    $('#city').on("change",function(){
       $('#zip').val('').trigger('input');
       /*console.log('change');*/
    });
});

并且工作正常。

但是,当用户输入医院名称后跟城市时,我尝试使用相同的逻辑来应用。它确实删除了城市下拉列表,但没有删除医院名称字段。当我输入医院名称并输入城市时,邮政编码字段不会为空,而是保持不变:

 $(document).ready(function(){
        $('#zip').on("change",function(){
            $('#city option[value=""]').prop('selected',true).trigger('input');
            /*console.log('input');*/
       });

        $('#city').on("change",function(){
           $('#zip').val('').trigger('input');
           /*console.log('change');*/
        });
    });
$(document).ready(function(){
        $('#zip').on("change",function(){
            $('#hospital option[value=""]').prop('selected',true).trigger('input');
            /*console.log('input');*/
       });

        $('#hospital').on("change",function(){
           $('#zip').val('').trigger('input');
           /*console.log('change');*/
        });
    });

这是我使用的表格:

    <cfset name_list1 = "Hosp">   
<cfset name_list2 = "MMG,MG,RG">    
<cfquery name="HospCityFind" datasource="Source">
    SELECT Distinct officecity FROM UrgHosp
    where utilizedspecialty in (<cfqueryparam value="#name_list1#" list="true" cfsqltype="cf_sql_varchar">)
    and Company in (<cfqueryparam value="#name_list2#" list="true" cfsqltype="cf_sql_varchar">)  
    order by officecity
    </cfquery>

  <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>

                            <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" ng-click="gotoElement('SearchResultsAnchor');" type="submit" value="Search" /></div>
        </form>
    </div>
</div>

最佳答案

医院字段是一个文本字段,但您正在尝试以清除下拉字段的方式清除它。更新:

$(document).ready(function(){
    var $zip = $('#zip');
    var $city = $('#city');
    var $hospital = $('#hospital');

    $zip.on("change",function(){
        $('#city option[value=""]').prop('selected',true).trigger('input');
        $hospital.val('').trigger('input');
    });

    $city.on("change",function(){
        $zip.val('').trigger('input');
    });

    $hospital.on("change",function(){
        $zip.val('').trigger('input');
    });
});

我还没有检查过它是否实际运行,但你明白了。

我做的其他改变:

  • 只有一个 $(document).ready() 是理想的。
  • jQuery 很昂贵,所以我将 jQuery 对象保存到变量中并在可能的情况下调用变量。
  • 将两个 zip 更改合并到同一个函数中。

关于javascript - 清除文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41749339/

相关文章:

文本自动换行后的 HTML/CSS 背景颜色

mysql - MySQL 中奇怪的语法错误

coldfusion - 创建一个逗号分隔的引用值列表

javascript - 嵌套列表 css 问题

javascript - Jquery Mobile - 从其他按钮单击更改标题中的图标颜色

javascript - document.getElementById ('id' ) 或 $ ('#id' ) 是否仍然需要按 ID 选择元素?

javascript - 在 z 轴(z 索引)中绕另一个元素旋转

javascript - 有没有一个javascript方法可以在字符串数组中查找子字符串?

javascript - QUnit - 循环测试,索引始终相同

sql-server - cfquery 的 blockfactor 真的能提高 MS SQL 服务器的性能吗?