如何使用复选框显示表单的更多选项并更改表单的操作属性
How to use a checkbox to show more options of a form and change the action attribute of the form?
嗨,我正在创建一个具有搜索房间表单的网站。我想让它成为一个复选框,当点击时,显示新的选项并更改表单的action="属性。
<form class="form-horizontal" action="reservation?action=listRooms" method="POST">
<label for="">Date </label>
<div class="datepicker ll-skin-nigran hasDatepicker">
<input class="form-control" type="text" placeholder="14/03/2016" name="dateReservation" id="date" required="required"/>
</div>
<br />
<div>
<input type="checkbox" name="choice-for" id="choice-form">
<label for="choice-for">Show More Options.</label>
<div class="reveal-if-active">
<label for="">Slots</label>
<select name="slot" name ="slot" id="slot" >
<option value="">Choose a slot </option>
<option value="8h-9h30">8h00-9h30</option>
<option value="9h30-11h">9h30-11h00</option>
<option value="11h-12h30h">11h00-12h30h</option>
<option value="12h30-14h">12h30-14h00</option>
<option value="14h-15h30">14h00-15h30</option>
<option value="15h30-17h">15h30-17h00</option>
<option value="17h-18h30">17h00-18h30</option>
</select>
<br />
<label for="">Display Screens</label>
<input class="form-control" type="text" placeholder=" 26 pouces" name="screen" id="screen" />
<br />
<label for="">CPU</label>
<input class="form-control" type="text" placeholder="Intel Core i5 " name="processor" id="processor" />
<br />
<label for="">RAM</label>
<input class="form-control" type="text" placeholder=" 2Go de RAM ?" name="ram" id="ram" />
<br />
<input type="submit" value="Réserver" class="btn btn-primary" />
</div>
然后我尝试使用javascript(JQuery)脚本来满足我的期望:
<script>
$(function() {
$( "#date" ).datepicker({ dateFormat: 'dd/mm/yy' });
});
$("#choice-form").change(function() {
//there i need to know when the checkbox is changed dynamically so the attribute can change too.
$("#form-horizontal).attr("reservation?action=listRooms");
});
var FormStuff = {
init: function() {
this.applyConditionalRequired();
this.bindUIActions();
},
bindUIActions: function() {
$("input[type='radio'], input[type='checkbox']").on("change", this.applyConditionalRequired);
},
applyConditionalRequired: function() {
$(".require-if-active").each(function() {
var el = $(this);
if ($(el.data("require-pair")).is(":checked")) {
el.prop("required", true);
} else {
el.prop("required", false);
}
});
}
};
FormStuff.init();
</script>
试试这个:
$("#choice-form").change(function() {
// If checkbox checked
if ( $('#choice-form').is(':checked') ) {
// Set new form action
$('#form-horizontal').attr('action', 'reservation?action=listRooms');
// Reveal additional options
$('.reveal-if-active').show(); // or call .css() with appropriate options
}
});
好的,假设您想将id(也可以使用名称)和值添加到表单中的操作参数…
$(document).on('click','.checkboxClass',function(){
var id = $(this).attr('id');
var val = $(this).val();
var selectedVal = '&'+id+'='+val;
var methodUrl = $('form.form-horizontal').attr('action');
if($(this).is(':checked')){
methodUrl+= selectedVal;
}
else{
methodUrl = methodUrl.replace(selectedVal,'');
}
$('form.form-horizontal').attr({'action':methodUrl});
});
现在假设您有一个id="myId"和value="myValue"的复选框,如果您选中它,则操作参数将变为action="reservation?action=listRooms&myId=myValue"
这是你要的吗?
相关文章:
- 如何根据所选选项值重定向表单操作
- 从输入时提交到jQuery,无需提交按钮,无需表单操作
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 表单操作值未从attr()函数中获取
- JavaScript 表单操作更改RC方法发布文本输入提交
- “表单操作”和“点击时提交表单”都将执行
- 动态更改表单操作以生成iframe
- 从HTML表单中获取计算得到的JavaScript数据,并将其作为新元素添加到相同的表单操作中以使用PHP保存
- html表单操作跨域目标iframe
- SSL/JS错误破坏了我页面上的表单操作
- 如何正确地将异步回调与react中的表单操作连接起来
- 表单操作过程中出现后退按钮问题
- extjs,如何在表单操作中绑定事件
- 表单操作查询字符串中需要下拉选项值
- 动态更改表单操作url
- HTML表单操作是在值前面,而不是在值后面
- 将java脚本变量传递给相同的表单操作php文件参数
- jQuery:$.ajax() 重定向到其 URL 表单操作参数,而不是对表单操作执行 AJAX 请求
- 代码点火器通过单击按钮更改表单操作
- 表单操作 一个外部 JavaScript 函数