Jquery隐藏/显示取决于复选框改变的值
jquery hide/show depending on value changed by checkbox
我有一个船/账单表单,其中航运信息将通过javascript调用从账单信息复制。在账单表单中,我隐藏了几个字段,它们会根据国家的选择而变化。到目前为止一切顺利。但是,当我用国家和所有内容(工作)填写账单表单,然后单击复选框将信息复制到船舶表单时,它会复制信息,但它不会将此视为船舶国家的"更改",因此一些字段仍然隐藏。
示例:我填写国家'USA',因此州下拉列表显示了所有州。我填写了所有内容,然后点击"复制到发货表格",这是在同一个页面上。它填满了表单的所有内容,但是状态下拉框没有显示出来……尽管在国家下拉列表中有一个变化
我的代码到目前为止(抱歉,如果这只是一个大杂烩,因为我使用javascript和jquery)。
var SHIP_FNAME = "";
var SHIP_LNAME = "";
var SHIP_COMPANY = "";
var SHIP_ADDRESS1 = "";
var SHIP_ADDRESS2 = "";
var SHIP_CITY = "";
var SHIP_STATE = "";
var SHIP_ZIP = "";
var SHIP_COUNTRY = "";
var SHIP_PHONE = "";
var SHIP_CSTATE = "";
function InitSaveVariables(form) {
SHIP_FNAME = form.SHIP_FNAME.value;
SHIP_LNAME = form.SHIP_LNAME.value;
SHIP_COMPANY = form.SHIP_COMPANY.value;
SHIP_ADDRESS1 = form.SHIP_ADDRESS1.value;
SHIP_ADDRESS2 = form.SHIP_ADDRESS2.value;
SHIP_CITY = form.SHIP_CITY.value;
SHIP_ZIP = form.SHIP_ZIP.value;
SHIP_STATE = form.SHIP_STATE.value;
SHIP_COUNTRY = form.SHIP_COUNTRY.value;
SHIP_PHONE = form.SHIP_PHONE.value;
SHIP_CSTATE = form.SHIP_CSTATE.value;
}
function ShipToBillPerson(form) {
if (form.address_fillin.checked) {
InitSaveVariables(form);
form.SHIP_FNAME.value = form.BILL_FNAME.value;
form.SHIP_LNAME.value = form.BILL_LNAME.value;
form.SHIP_COMPANY.value = form.BILL_COMPANY.value;
form.SHIP_ADDRESS1.value = form.BILL_ADDRESS1.value;
form.SHIP_ADDRESS2.value = form.BILL_ADDRESS2.value;
form.SHIP_CITY.value = form.BILL_CITY.value;
form.SHIP_ZIP.value = form.BILL_ZIP.value;
form.SHIP_STATE.value = form.BILL_STATE.value;
form.SHIP_COUNTRY.value = form.BILL_COUNTRY.value;
form.SHIP_PHONE.value = form.BILL_PHONE.value;
form.SHIP_CSTATE.value = form.BILL_CSTATE.value;
} else {
form.SHIP_FNAME.value = "";
form.SHIP_LNAME.value = "";
form.SHIP_COMPANY.value = "";
form.SHIP_ADDRESS1.value = "";
form.SHIP_ADDRESS2.value = "";
form.SHIP_CITY.value = "";
form.SHIP_ZIP.value = "";
form.SHIP_STATE.value = "";
form.SHIP_COUNTRY.value = "";
form.SHIP_PHONE.value = "";
form.SHIP_CSTATE.value = "";
}
}
//结束-->
$(document).ready(function(){
$('#BILL_COUNTRY').on('change', function() {
if ( this.value == 'USA')
{
$("#statetr").show();
$("#BILL_STATE").show();
$("#BILL_CSTATE").hide();
}
else if ( this.value == 'Canada')
{
$("#statetr").show();
$("#BILL_STATE").hide();
$("#BILL_CSTATE").show();
}
else
{
$("#statetr").hide();
$("#BILL_STATE").hide();
$("#BILL_CSTATE").hide();
}
});
$('#SHIP_COUNTRY').on('change', function() {
if ( this.value == 'USA')
{
$("#statetr2").show();
$("#SHIP_STATE").show();
$("#SHIP_CSTATE").hide();
}
else if ( this.value == 'Canada')
{
$("#statetr2").show();
$("#SHIP_STATE").hide();
$("#SHIP_CSTATE").show();
}
else
{
$("#statetr2").hide();
$("#SHIP_STATE").hide();
$("#SHIP_CSTATE").hide();
}
});
});
(ship_cstate block是一个包含加拿大各州的block)复选框在代码中通过以下方式调用:
<input type="checkbox" name="address_fillin" id="address_fillin" value="Yes" OnClick="javascript:ShipToBillPerson(this.form);">
我试图谷歌代码检查复选框,然后SHIP_COUNTRY的值,但找不到任何东西。我试着自己构建它,但这基本上使整个代码失效了……我:
$('#address_fillin').click(function(){
if ($("#SHIP_COUNTRY").val("USA")) {
{
$("#statetr2").show();
$("#SHIP_STATE").show();
$("#SHIP_CSTATE").hide();
} (etc... since this is basically a copy of the other function above)
试着把
$("#SHIP_COUNTRY").trigger("change");
在复制函数的末尾使用。这将运行附在#SHIP_COUNTRY
上的change函数。
相关文章:
- AngularJS:单选复选框模型不会改变
- 选中/取消选中复选框时更改变量值
- 引导复选框/单选按钮不改变<输入>价值
- 当视图模型属性改变复选框值时被通知
- Jquery隐藏/显示取决于复选框改变的值
- 改变“+”;在textarea中输入type='复选框'>
- 在材质设计和angularjs中不动态改变状态的复选框
- 如何改变angularjs的模型,其中的复选框从jquery改变
- 如何发现当一个复选框被编程改变
- 根据复选框的单击来改变表内行的颜色
- 我如何改变它,使复选框而不是文本显示
- 改变复选框.Id通过javascript
- 复选框& # 39;改变# 39;事件在单击标签时起作用.ie8, ie7
- JQuery不会选择和改变复选框的状态
- 复选框状态在按下键后改变
- JavaScript -如何改变复选框背景
- 改变边界颜色时,2复选框被选中(并禁用其余)
- 改变md复选框的颜色
- 如何改变状态的所有复选框(在所有页面),当点击selectAll复选框[使用jQuery数据表]
- 通过jQuery改变复选框的值