Умножьте значения в «Включенных текстовых полях», используя JavaScript в ASP.Net - PullRequest
0 голосов
/ 25 мая 2011

У меня есть пять TextBox, такие как ID TextBox, следующие:

     1. txtD1
     2. txtD2
     3. txtD3
     4. txtQuantity
     5. txtTotal

Здесь текстовые поля txtD1, txtD2 и txtD3 включаются или отключаются на основе значений из базы данных. В интерфейсе мы не знаем, какие текстовые поля будут включены или отключены. В txtQuantity я хочу ввести номер. Теперь я хочу умножить включенные значения TextBox на txtQuantity и отобразить значение в txtTotal TextBox. Как это сделать? В то же время я хочу передать текстовые поля в качестве аргумента функции. Так что будет полезно, где мы захотим.

Ответы [ 4 ]

1 голос
/ 25 мая 2011
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;
}
1 голос
/ 25 мая 2011

Можете ли вы использовать 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 является единственным активированным.

  • Это предполагает, что вы имеете дело с целыми числами. Вы можете использовать parseFloat в противном случае.
1 голос
/ 25 мая 2011

Вы можете использовать событие JavaScript onblur и вызвать метод JS для вычисления и присвоения итогового значения текстовому полю Total:

<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>
0 голосов
/ 25 мая 2011

в случае, если они являются текстовой областью, вы можете использовать это, чтобы увидеть, включены ли они

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);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...