[英]Hidden input value set by JQuery not passed on form submit
我正在使用Codeigniter,并且有一个带有按钮组(两个按钮)的表单。 在加载新页面(首次访问网站)时,第一个按钮被选中,并且我的脚本设置了与此按钮关联的隐藏输入的值。 如果用户选择第二个按钮,则会在屏幕上显示其他字段,并在清除第一个隐藏输入值的同时设置此按钮的隐藏输入值。 这一切都很好。
我在Firebug中看到隐藏的输入值正在更新,但是当我提交表单时,隐藏的输入没有值。
的HTML
<div class="panel-heading" id="order-hd">
<div class="btn-group" role="group" aria-label="...">
<button type="button" id="single-ship" class="btn btn-primary">
<i class="fa fa-user" aria-hidden="true"></i> Place order for a single recipient
</button>
<button type="button" id="multi-ship" class="btn btn-primary">
<i class="fa fa-users" aria-hidden="true"></i> Place an order for multiple recipients
</button>
</div>
<input type="hidden" name="single_ship" id="single_ship" value="" />
<input type="hidden" name="multi_ship" id="multi_ship" value="" />
</div>
的PHP
if($this->input->post('multi_ship')) {
$this->form_validation->set_rules('fname', 'First Name', 'trim|required');
$this->form_validation->set_rules('lname', 'Last Name', 'trim|required');
$this->form_validation->set_rules('address', 'Address', 'trim|required');
$this->form_validation->set_rules('city', 'City', 'trim|required');
$this->form_validation->set_rules('state', 'State', 'trim|required');
$this->form_validation->set_rules('zip', 'Zip Code', 'trim|required');
$order_type = 'M';
}
else {
$order_type = 'S';
}
脚本
$(document).ready(function() {
if (!$('#multi-ship').hasClass("locked") && !$('#single-ship').hasClass("locked")) {
//Default sinlge ship method on initial page load
$('#shipping-addr').hide();
$('#single-ship').addClass('locked');
$('#single-ship').attr('disabled', 'true');
$('#single_ship').val('X');
}
$('#multi-ship').on('click', function() {
$('#shipping-addr').show();
$('#single-ship').removeClass('locked');
$('#single-ship').removeAttr('disabled');
$('#multi-ship').addClass('locked');
$('#multi-ship').attr('disabled', 'true');
$('#single_ship').val('');
$('#multi_ship').val('X');
});
$('#single-ship').on('click', function() {
$('#shipping-addr').hide();
$('#multi-ship').removeClass('locked');
$('#multi-ship').removeAttr('disabled');
$('#single-ship').addClass('locked');
$('#single-ship').attr('disabled', 'true');
$('#multi_ship').val('');
$('#single_ship').val('X');
});
$('#giftwrap').change(function() {
cb = $(this);
cb.val(cb.prop('checked'));
});
$("#item_delete").click(function(e) {
e.preventDefault();
$('#cartform').submit();
});
});
问题解决了。 我在表单标签之外有隐藏的输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.