通过js控制页面按钮的置灰与清零
2018-04-08 14:34
543 查看
页面效果:
要求:选择了最小分期或最大分期两个下拉框,将分期期数的多选框置灰并清除已经选中项,
选中了多选框分期期数,,将最大分期与最小分期置灰并清零.
此三个目标框的代码为:
<div class="col-sm-6">
<#select id="minPeriod" name="最小分期" underline="true" value="">
<option value=""></option>
<option value="3">3</option>
<option value="6">6</option>
<option value="9">9</option>
<option value="12">12</option>
<option value="18">18</option>
<option value="24">24</option>
<option value="36">36</option>
</#select>
<#select id="maxPeriod" name="最大分期" underline="true" value="">
<option value=""></option>
<option value="3">3</option>
<option value="6">6</option>
<option value="9">9</option>
<option value="12">12</option>
<option value="18">18</option>
<option value="24">24</option>
<option value="36">36</option>
</#select>
</div>
<div class="col-sm-9">
<label>分期期数</label>
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="3"/>3期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="6"/>6期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="9"/>9期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="12"/>12期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="18"/>18期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="24"/>24期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="36"/>36期
</div>
</div>
实现需求效果的js代码:
//点击触发:选了最小分期,分期期数只读且全部清除选中
$("#minPeriod").click(function(){
setAllowPeriodDisabledByMin();
});
//点击触发:选了最大分期,分期期数只读且全部清除选中
$("#maxPeriod").click(function(){
setAllowPeriodDisabledByMax();
});
function setAllowPeriodDisabledByMin(){
if(!$("#minPeriod").val()==''){
$("input[id='allowPeriod']").each(function(){
$(this).attr("checked",false);
$(this).attr("disabled",true);
});
}else{
$("input[id='allowPeriod']").each(function(){
$(this).attr("disabled",false);
});
}
}
function setAllowPeriodDisabledByMax(){
if(!$("#maxPeriod").val()==''){
$("input[id='allowPeriod']").each(function(){
$(this).attr("checked",false);
$(this).attr("disabled",true);
});
}else{
$("input[id='allowPeriod']").each(function(){
$(this).attr("disabled",false);
});
}
}
//点击触发:选了分期期数,最大分期和最小分期两个下拉框只读且置空
$("input[id='allowPeriod']").click(function(){
setMinPeriodAndMaxPeriodDisabled();
});
function setMinPeriodAndMaxPeriodDisabled(){
var a = 0, b = 0;//b可以统计未选中的项,无用可以删除.
$("input[name='allowPeriod']").each(function(){
if($(this).is(':checked')){
a++;
}else{
b++;
}
});
if(a == 0){
$("select[id='minPeriod']").attr("disabled",false);
$("select[id='maxPeriod']").attr("disabled",false);
}else{
$("select[id='minPeriod']").val('');
$("select[id='maxPeriod']").val('');
$("select[id='minPeriod']").attr("disabled",true);
$("select[id='maxPeriod']").attr("disabled",true);
}
}
另外,点击提交时,对多选框的选中项进行收集处理,将所有的选中项拼接成一个数组,直接传递:
var allowPeriods = document.getElementsByName("allowPeriod");
var allowPeriodArray = [];
for (k in allowPeriods) {
if (allowPeriods[k].checked){
allowPeriodArray.push(allowPeriods[k].value);
}
}
注意点:将一个目标对象置灰时:$("select[id='minPeriod']").attr("disabled",true)
不置灰时:$("select[id='minPeriod']").attr("disabled",false);
此处使用true和false,不能带引号,如果使用引号,true可以起作用,因为,disabled属性,只要有值就会起作用,置灰,但是,使用带引号的"false"时,仍然置灰!
此处使用jQuery选择器.click,直接触发,也可以在目标输入框直接加,只是比较麻烦.
要求:选择了最小分期或最大分期两个下拉框,将分期期数的多选框置灰并清除已经选中项,
选中了多选框分期期数,,将最大分期与最小分期置灰并清零.
此三个目标框的代码为:
<div class="col-sm-6">
<#select id="minPeriod" name="最小分期" underline="true" value="">
<option value=""></option>
<option value="3">3</option>
<option value="6">6</option>
<option value="9">9</option>
<option value="12">12</option>
<option value="18">18</option>
<option value="24">24</option>
<option value="36">36</option>
</#select>
<#select id="maxPeriod" name="最大分期" underline="true" value="">
<option value=""></option>
<option value="3">3</option>
<option value="6">6</option>
<option value="9">9</option>
<option value="12">12</option>
<option value="18">18</option>
<option value="24">24</option>
<option value="36">36</option>
</#select>
</div>
<div class="col-sm-9">
<label>分期期数</label>
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="3"/>3期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="6"/>6期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="9"/>9期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="12"/>12期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="18"/>18期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="24"/>24期
<input name="allowPeriod" id="allowPeriod" type="checkbox" value="36"/>36期
</div>
</div>
实现需求效果的js代码:
//点击触发:选了最小分期,分期期数只读且全部清除选中
$("#minPeriod").click(function(){
setAllowPeriodDisabledByMin();
});
//点击触发:选了最大分期,分期期数只读且全部清除选中
$("#maxPeriod").click(function(){
setAllowPeriodDisabledByMax();
});
function setAllowPeriodDisabledByMin(){
if(!$("#minPeriod").val()==''){
$("input[id='allowPeriod']").each(function(){
$(this).attr("checked",false);
$(this).attr("disabled",true);
});
}else{
$("input[id='allowPeriod']").each(function(){
$(this).attr("disabled",false);
});
}
}
function setAllowPeriodDisabledByMax(){
if(!$("#maxPeriod").val()==''){
$("input[id='allowPeriod']").each(function(){
$(this).attr("checked",false);
$(this).attr("disabled",true);
});
}else{
$("input[id='allowPeriod']").each(function(){
$(this).attr("disabled",false);
});
}
}
//点击触发:选了分期期数,最大分期和最小分期两个下拉框只读且置空
$("input[id='allowPeriod']").click(function(){
setMinPeriodAndMaxPeriodDisabled();
});
function setMinPeriodAndMaxPeriodDisabled(){
var a = 0, b = 0;//b可以统计未选中的项,无用可以删除.
$("input[name='allowPeriod']").each(function(){
if($(this).is(':checked')){
a++;
}else{
b++;
}
});
if(a == 0){
$("select[id='minPeriod']").attr("disabled",false);
$("select[id='maxPeriod']").attr("disabled",false);
}else{
$("select[id='minPeriod']").val('');
$("select[id='maxPeriod']").val('');
$("select[id='minPeriod']").attr("disabled",true);
$("select[id='maxPeriod']").attr("disabled",true);
}
}
另外,点击提交时,对多选框的选中项进行收集处理,将所有的选中项拼接成一个数组,直接传递:
var allowPeriods = document.getElementsByName("allowPeriod");
var allowPeriodArray = [];
for (k in allowPeriods) {
if (allowPeriods[k].checked){
allowPeriodArray.push(allowPeriods[k].value);
}
}
注意点:将一个目标对象置灰时:$("select[id='minPeriod']").attr("disabled",true)
不置灰时:$("select[id='minPeriod']").attr("disabled",false);
此处使用true和false,不能带引号,如果使用引号,true可以起作用,因为,disabled属性,只要有值就会起作用,置灰,但是,使用带引号的"false"时,仍然置灰!
此处使用jQuery选择器.click,直接触发,也可以在目标输入框直接加,只是比较麻烦.
相关文章推荐
- 如何通过js实现页面光标位置的控制
- 通过单选按钮控制页面之间的切换
- 控制页面按钮在后台执行期间不重复提交的JS方法
- jsp页面使用js控制文本框只读,并且按下backspace删除按钮后停在原页面
- 控制页面按钮在后台执行期间不重复提交的JS方法
- 通过自定义标签,实现 页面 按钮显示控制
- Asp.net页面中通过Js控制Silverlight显示值
- 子页面通过js获取获控制父页面
- js通过点击一个按钮跳转到一个查询页面--window.showModalDialog
- JS通过时间控制页面样式
- JS通过设置cookie来控制弹出层,首次打开页面显示弹出层
- 通过js控制页面元素的响应式布局
- asp.net JS控制页面按钮在后台执行期间不重复提交
- function设置jsp页面使用js控制文本框只读,并且按下backspace删除按钮后停在原页面
- js通过contentWindow控制iframe子页面元素点击事件,并把值传给父页面
- 通过js控制radio类型按钮选中状态
- asp.net JS控制页面按钮在后台执行期间不重复提交
- UIWebView 通过JS控制页面视频播放
- 点击按钮时弹出另一个能控制大小的页面,并将某些值通过POST方式传给这个弹出的窗口
- 权限系统--通过shiro进行按钮及页面访问url的权限控制