根据更改事件的复选框从文本框中获取值

时间:2016-03-17 07:15:37

标签: javascript checkbox

我在表单中有两个文本框和一个复选框。 我需要创建一个函数javascript函数,用于将第一个txtbox值复制到复选框更改事件的第二个文本框中。

我使用以下代码,但它在第一次显示为null时复选框为true。

function ShiptoBill()
{
  var billing = document.getElementById("txtbilling").value;
  var shipping = document.getElementById("txtshipping").value;
  var check = // here i got checkbox checked or not
  if(check == true)
  {
    // here I need to add the txtbilling value to txtshipping
  }

}

3 个答案:

答案 0 :(得分:2)

鉴于表单控件可以作为表单的命名属性进行访问,您可以从复选框中获取对表单的引用,然后有条件地将 txtshipping 的值设置为的值txtbilling 取决于是否选中,例如:



<form>
  <input name="txtbilling" value="foo"><br>
  <input name="txtshipping" readonly><br>
  <input name="sameas" type="checkbox" onclick="
   this.form.txtshipping.value = this.checked? this.form.txtbilling.value : '';
  "><br>
  <input type="reset">
</form>
&#13;
&#13;
&#13;

当然你可能想动态设置监听器,上面只提供一个提示。如果用户更改了内容并选中了复选框,您还可以有条件地复制内容,因此也可能需要 txtbilling 上的更改事件监听器。

答案 1 :(得分:0)

尝试以下。

function ShiptoBill() {
  var billing = document.getElementById("txtbilling");
  var shipping = document.getElementById("txtshipping");

  var check = document.getElementById("checkboxId").checked; 

  if (check == true) {
    shipping.value = billing.value;
  } else {
    shipping.value = '';
  }
}
<input type="text" id="txtbilling" />
<input type="text" id="txtshipping" />
<input type="checkbox" onchange="ShiptoBill()" id="checkboxId" />

function ShiptoBill()
{
    var billing = document.getElementById("txtbilling");
    var shipping = document.getElementById("txtshipping");

    var check = document.getElementById("checkboxId").checked; // replace 'checkboxId' with your checkbox 'id'

    if (check == true)
    {
        shipping.value = billing.value;
    }
}

答案 2 :(得分:0)

要在事件发生变化时获取,请执行

$('#checkbox1').on('change',function() {
  if($(this).checked) {
   $('#input2').val($('#input1').val());
  }
});

这将检查复选框是否有更改,然后检查是否已选中。如果是,则将输入框1的值放入输入框2的值。

编辑:这是一个纯粹的JS解决方案,and a JSBin too

function ShiptoBill()
{
  var billing = document.getElementById("txtbilling").value;
  var shipping = document.getElementById("txtshipping").value;
  var check = document.getElementById("thischeck").checked;
  console.log(check);
  if(check == true)
  {
    console.log('checked');
    document.getElementById("txtshipping").value = billing;
  } else {
    console.log('not checked');
  }
}

<input id="thischeck" type="checkbox" onclick="ShiptoBill()">