[英]How do i checked another checkbox when i checked a checkbox(same class) and insert value into a textbox
[英]How do I add a #.## value to a textbox that already has another ##.## value in it only if a checkbox is checked?
我一直試圖弄清楚如何制作它,以便如果選中了特定的復選框,則在單擊提交按鈕之前,在提交表單之前,文本框中的總金額將添加到50.00。 實際上,最好在選中復選框后立即進行更新。
這是我到目前為止嘗試過的:
<!DOCTYPE html>
<html>
<head>
<script>
function toggle(){
var indoorCamping = 50.00;
var total = 0.00;
if(document.getElementByName('fifty').is(':checked')){
total = (indoorCamping + document.getElementsByName('Amount').value);
document.getElementsByName('Amount').value = total;
}
else{
return;
}
}
</script>
</head>
<body>
<p>Click the button to trigger a function.</p>
<input type="checkbox" name="fifty" value="indoor"/>
<label for="Amount">Amount <span class="req">*</span> <span
id="constraint-300-label"></span></label><br />
<input type="text" class="cat_textbox" id="Amount" name="Amount" />
<p id="demo"></p>
<button onclick="toggle()">Click me</button>
</body>
</html>
文本輸入的值最初始終是文本(字符串)。 在將該值添加到數字之前,需要將其顯式轉換為數字,否則它將文本連接在一起。 因此,“ 20”將變為“ 5020”。
借用莫汗的代碼:
<script>
function toggle(checkbox){
var indoorCamping = 50.00;
var total = 0.00;
if(checkbox.checked){
total = (indoorCamping + document.getElementById('Amount').value * 1);
document.getElementById('Amount').value = total;
}
}
</script>
我乘以1,這是將“ 20”轉換為數字的一種方法。 Number(x)
, parseInt(x)
和parseFloat(x)
是其他方式。
我更喜歡使用amt
對象變量:
<script>
function toggle(checkbox) {
var indoorCamping = 50.00;
var total = 0.00;
var amt = null;
if (checkbox.checked) {
amt = document.getElementById('Amount');
total = (indoorCamping + amt.value * 1);
amt.value = total;
}
}
</script>
然后在復選框上添加單擊事件。 像這樣...
<input type="checkbox" name="fifty" value="indoor" onclick="toggle(this);"/>
然后在您的腳本中...
<script>
function toggle(checkbox){
var indoorCamping = 50.00;
var total = 0.00;
if(checkbox.checked){
total = (indoorCamping + document.getElementById('Amount').value);
document.getElementById('Amount').value = total;
}
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.