我有五个TextBox,例如TextBoxes的ID如下:
1. txtD1
2. txtD2
3. txtD3
4. txtQuantity
5. txtTotal
这里,TextBoxes txtD1,txtD2和txtD3是基于DataBase中的值启用或禁用的。在前端,我们不知道哪些TextBox会被启用或禁用。在txtQuantity中我想输入数字。现在我想将启用的TextBox值与txtQuantity相乘,我想将值显示到txtTotal TextBox中。这该怎么做?同时我想将文本框作为函数的参数传递。因此,无论我们想要什么,它都会很有用。
答案 0 :(得分:1)
您可以使用JavaScript的onblur
事件并调用JS方法来计算并将总计分配给总文本框:
<asp:TextBox ID="txtQuantity" runat="server" onblur="javascript:update();"></asp:TextBox>
<script language="javascript" type="text/javascript">
function update() {
document.getElementById('<%= txtTotal.ClientID %>').value =
document.getElementById('<%= txtQuantity.ClientID %>').value *
document.getElementById('<%= txtD1.ClientID %>').value;
}
</script>
答案 1 :(得分:1)
你能用jQuery吗?如果可以,使用jQuery检查哪些已启用,然后将它们全部加起来。我在http://jsfiddle.net/2SfX3/
处有一份工作样本如果您有html:
<input type="text" class="factor" id="txtD1"/>
<input type="text" class="factor" id="txtD2" disabled="disabled"/>
<input type="text" class="factor" id="txtD3" disabled="disabled"/>
<input type="text" id="txtQuantity" />
<input type="text" id="txtTotal" />
<input type="button" id="compute" value="Compute" />
您可以按照以下方式实现jQuery:
$(document).ready(function() {
$('#compute').click(function() {
var total = 0;
$.each($('.factor'), function(i, data) {
if (!$(this).attr('disabled')) {
total = total + parseInt($(this).val());
}
});
$('#txtTotal').val(parseInt($('#txtQuantity').val()) * total);
});
});
此输出将是第一个文本框值*数量,因为txtD1
是唯一启用的。{/ p>
parseFloat
。答案 2 :(得分:1)
function MultiplyValues(txtBox1,txtBox2,txtBox3,txtQuantity)
{
var ReturnValue = 1;
if (txtBox1.disabled==false && txtBox1.value.lenth>0)
ReturnValue *= txtBox1.value;
if (txtBox2.disabled==false && txtBox2.value.lenth>0)
ReturnValue *= txtBox2.value;
if (txtBox3.disabled==false && txtBox3.value.lenth>0)
ReturnValue *= txtBox3.value;
if (txtQuantity.value.length>0)
ReturnValue *= txtQuantity.value;
document.getElementById("txtTotal").value = (ReturnValue==1)?0:ReturnValue;
}
上述功能可以根据文本框状态(启用或禁用)和txtTotal中的显示计算值。您可以将此功能应用于按钮 onclick 。事件
@alex,谢谢你告知,我错过了这个案子。 PFB,修改功能
function MultiplyValues(txtBox1,txtBox2,txtBox3,txtQuantity)
{
var ReturnValue = 1;
var isThere = 0;
if (txtBox1.disabled==false && txtBox1.value.length>0) {
ReturnValue *= txtBox1.value; isThere=1; }
if (txtBox2.disabled==false && txtBox2.value.length>0) {
ReturnValue *= txtBox2.value; isThere=1; }
if (txtBox3.disabled==false && txtBox3.value.length>0) {
ReturnValue *= txtBox3.value; isThere=1; }
if (txtQuantity.value.length>0) {
ReturnValue *= txtQuantity.value; isThere=1; }
document.getElementById("txtTotal").value = (ReturnValue==1 && isThere==0)?0:ReturnValue;
}
答案 3 :(得分:0)
如果它们是textarea,您可以使用它来查看它们是否已启用
var tags = document.getElementsByTagName('textarea');
var length = tags.length;
for (var i;i <length; i++){
if (tags[i].disabled == false) {
// now you can do something with this tag this enabled
// example
alert(tags[i].value);
}
}