2016-03-17 49 views
-1

我在表單中有兩個文本框和一個複選框。 我需要創建一個函數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 
    } 

} 
+0

嚴格使用Javascript,還是你願意使用jQuery? – tempranova

+0

@tempranova他標記jquery..go給jquery答案..OP應提供更多信息 – guradio

+0

@tempranova Javascript – User

回答

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; 
    } 
} 
+0

這是不是一個問題。我已經有複選框被選中或不。 – User

+0

對不起,誤會。我已經更新了我的答案。 @用戶 – Azim

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()"> 
+0

啊。剛剛刪除jQuery。哈哈。 OK ...秒。 – tempranova

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>

當然,你可能要動態設置監聽器,上面只是提供一個提示。如果用戶更改了內容並且複選框被選中,您還可以有條件地複製內容,因此可能還需要txtbilling上的更改事件偵聽器。