jquery中input框val值 点击当前val框,其他禁用val并清空,

本文详细介绍了三种雇主报价方式:按咨询服务费直接报价、按当地政府收费标准的下浮百分比报价以及按总造价计费的百分比报价。每种方式都有其适用场景和计算方法,为雇主提供了灵活的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<div class="layui-form-item">
					<div class="layui-inline">
						<p class="ag_guzhu"><i style="color: red;">*</i> 雇主报价</p>
						<label class="ag_gu_label">
								<div class="layui-input-block">
										<input type="radio" name="sex" value="1" title="按咨询服务费">
								</div>
								<div class="layui-input-inline ag_gu_one">
										<input type="tel" name="text" id="first" value=""  autocomplete="off" class="layui-input">
								</div>
								<label class="layui-form-label ag_yuan">元</label>
						</label>
	 				</div>
				</div>

				<div class="layui-form-item">	
					<label class="ag_gu_label">
							<div class="layui-input-block">
									<input type="radio" name="sex"  value="2" title="按当地政府收费标准的下浮:">
							</div>
							<div class="layui-input-inline ag_gu_one">
									<input type="number" name="text"  id="second" autocomplete="off" class="layui-input">
							</div>
							<label class="layui-form-label ag_yuan" >%</label>
							<label class="layui-form-label ag_gu_two">预估咨询服务费:</label>
							<div class="layui-input-inline ag_gu_two">
							  <input type="text" name="text"  id="second1"  autocomplete="off" value='' disabled class="layui-input">
							</div>
							<label class="layui-form-label ag_yuan" >元</label>
					</label>
						
				</div>
				<div class="layui-form-item">
					<label class="ag_gu_label">
							<div class="layui-input-block">
									<input type="radio" name="sex" value="3" title="按总造价计费:">
							</div>
							<div class="layui-input-inline ag_gu_one">
									<input type="number" name="text"  id="third" autocomplete="off" class="layui-input">
							</div>
							<label class="layui-form-label ag_yuan" >%</label>
							<label class="layui-form-label ag_gu_two" style="margin-left:85px;">预估咨询服务费:</label>
							<div class="layui-input-inline ag_gu_two">
							  <input type="text" name="text"  id="third1"  autocomplete="off" value="" disabled class="layui-input">
							</div>
							<label class="layui-form-label ag_yuan" >元</label>
					</label>					
				</div>
<script src="../js/jquery-1.11.3.min.js" type="text/javascript"></script>


<script>
	//单选
	$("input:radio[name='sex']").each(function () {
		$("input:radio[name='sex']").click(function(){
			let ad_cty = $(this).val();
			if(ad_cty == 1){
				$("#first").attr("disabled", false);
				$("#second").attr("disabled", true);
				$("#second").val('');
				$("#third").val('');
				$("#third").attr("disabled", true);	
			}
			if(ad_cty == 2){
				$("#first").val('');
				$("#third").val('')
				$("#first").attr("disabled", true);
				$("#second").attr("disabled", false);
				$("#third").attr("disabled", true);
			}
			if(ad_cty == 3){
				$("#first").val('');
				$("#second").val('')
				$("#first").attr("disabled", true);
				$("#second").attr("disabled", true);
				$("#third").attr("disabled", false);
			}
            //  console.log(ad_cty);
		});
  
});
</script>
<think>好的,我现在需要帮用户分析一个名为`onComboboxChangeEvent`的函数,这个函数有三个参数:`boItemName`、`$combobox`和`val`。首先,我得弄清楚这个函数可能的用途和每个参数的作用。 用户之前的问题是关于前端表单验证的,现在这个函数看起来是一个组合(combobox)变化的事件处理函数。可能需要结合之前的上下文来理解。不过,当前的问题主要是解释这个函数的结构和可能的实现。 首先,参数`boItemName`,可能代表业务对象的项名称,比如在表单中对应的字段名。`$combobox`带有美元符号,可能表示这是一个jQuery对象,指向组合的DOM元素。`val`应该是当前选择的。 接下来,我需要考虑这个函数在业务逻辑中的常见用途。比如,当用户选择某个选项时,可能需要更新其他表单字段、进行数据验证、或者触发API请求获取相关数据。例如,选择省份后加载城市列表,或者根据选择的显示不同的输入字段。 然后,我要考虑参数的具体使用。`boItemName`可能用于识别处理哪个字段发生了变化,尤其是在表单中有多个组合时。`$combobox`可以用来操作DOM,比如更新样式、禁用其他输入等。`val`则是当前选中的,用于后续的逻辑判断。 可能的实现步骤包括:验证输入,处理业务逻辑,更新UI,以及与其他组件交互。比如,检查`val`是否有效,根据不同的显示或隐藏某些区域,或者发送Ajax请求获取数据填充另一个下拉。 还需要考虑异常处理,比如网络请求失败时的回退措施,或者无效输入时的用户提示。此外,如果使用jQuery,可能会有特定的事件绑定方式,例如使用`.on('change', ...)`来触发这个函数。 用户可能需要这个函数的示例代码,所以应该提供几种常见场景的实现,比如级联下拉菜单和字段联动。同时,要提醒注意事项,比如参数命名规范、事件冒泡处理、内存泄漏问题,以及兼容性考虑。 最后,总结这个函数的作用,强调参数的意义和典型的应用场景,帮助用户更好地理解和应用到自己的项目中。</think>以下是这个函数的分析及典型应用场景说明: --- ### 一、函数结构解析 ```javascript function onComboboxChangeEvent(boItemName, $combobox, val) { // 事件处理代码 } ``` #### 参数说明: 1. `boItemName` - **类型**:String - **作用**:业务对象字段标识符 - **示例**:`"userType"`, `"productCategory"` 2. `$combobox` - **类型**:jQuery Object - **作用**:触发事件的组合DOM元素 - **特征**:变量名前导$符号是jQuery对象约定 3. `val` - **类型**:String/Number/Array - **作用**:当前选中的 - **特殊**:多选时为数组类型 --- ### 二、典型实现模式 #### 场景1:级联下拉菜单 ```javascript function onComboboxChangeEvent(boItemName, $combobox, val) { // 当省份选择变化时 if (boItemName === 'province') { const citySelect = $('#citySelect'); // 清空旧选项 citySelect.empty().append('<option>加载中...</option>'); // 获取关联数据 $.get(`/api/cities?province=${val}`).done(data => { citySelect.empty(); data.forEach(city => { citySelect.append($('<option>').val(city.code).text(city.name)); }); }); } } ``` #### 场景2:字段联动显示 ```javascript function onComboboxChangeEvent(boItemName, $combobox, val) { // 当用户类型选择变化时 if (boItemName === 'userType') { const $companyField = $('#companyField'); // 仅当选择"企业用户"时显示公司字段 val === 'enterprise' ? $companyField.show() : $companyField.hide(); } } ``` --- ### 三、最佳实践建议 #### 1. 参数验证 ```javascript function onComboboxChangeEvent(boItemName, $combobox, val) { // 防御性编程 if (typeof boItemName !== 'string' || !($combobox instanceof jQuery)) { console.error('Invalid parameters'); return; } } ``` #### 2. 事件解耦 ```javascript // 使用发布-订阅模式 const eventBus = { subs: {}, publish(eventName, data) { (this.subs[eventName] || []).forEach(fn => fn(data)); } }; function onComboboxChangeEvent(boItemName, $combobox, val) { eventBus.publish('comboboxChange', { field: boItemName, element: $combobox, value: val }); } ``` --- ### 四、高级应用示例 #### 动态表单验证 ```javascript function onComboboxChangeEvent(boItemName, $combobox, val) { // 当选择支付方式时 if (boItemName === 'paymentMethod') { const $creditCardFields = $('#creditCardFields'); const $alipayQr = $('#alipayQr'); // 切换验证规则 switch(val) { case 'creditCard': $creditCardFields.show().find('input').prop('required', true); $alipayQr.hide().find('input').prop('required', false); break; case 'alipay': $creditCardFields.hide().find('input').prop('required', false); $alipayQr.show().find('input').prop('required', true); break; } } } ``` --- ### 五、注意事项 1. **内存管理**:及时解绑不需要的事件监听 2. **性能优化**:对频繁操作使用防抖(如搜索建议) ```javascript const debouncedSearch = _.debounce(searchAPI, 300); ``` 3. **浏览器兼容**:注意`val`参数在不同控件类型中的返回差异 - `select[multiple]` 返回数组 - `input[type=text]` 返回字符串 --- 这个函数是典型的下拉变更事件处理程序,其核心作用是:当用户在组合中进行选择操作时,根据业务字段标识(`boItemName`)和当前(`val`),执行对应的业务逻辑操作。参数设计体现了业务逻辑与UI操作的解耦思想。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值