Я пытаюсь вычислить в Javascript. Но скрипт возвращает NaN.

Я пытался преобразовать данные с помощью number, parseInt и parseFloat, но безуспешно.

Кто-нибудь знает, что не так с моим сценарием?

Вот мой Javascript

$('[id^=neg_pos]').each( function( i, e) {
  var quantity = e.options[e.selectedIndex].value;

  if ( quantity==='0') {

  } else if ( quantity==='1') {
    var num1 = Number(document.getElementsByName('price[]').value);
    var num2 = Number(document.getElementsByName('tax[]').value);

    var tv1 = num1 + num2;
    pos += tv1;

  } else {
    var num1 = Number(document.getElementsByName('price[]').value);
    var num2 = Number(document.getElementsByName('tax[]').value);

    var tv1 = num1 + num2;
    neg += tv1;
  }

document.getElementById('positive').value = pos.toFixed(2);
document.getElementById('negative').value = neg.toFixed(2);

});

Текстовые поля price[] и tax[] - это динамические текстовые поля, созданные в Javascript.

Вот текстовые поля: Первые текстовые поля создаются в HTML:

<input type="text" name="price[]" id="price1" onkeypress="return isNumber(event, this)" data-srno="1">
<input type="text" name="tax[]" id="tax1" onkeypress="return isNumber(event, this)" data-srno="1">

Остальные текстовые поля создаются в Javascript.

$(document).on('click', '#add_row', function(){
  count++;
  $('#total_item').val(count);
  var html_code = '';
  html_code += '<input type="text" name="price[]" id="price'+count+'" onkeypress="return isNumber(event, this)" data-srno="'+count+'">';
  html_code += '<input type="text" name="tax[]" id="tax'+count+'" onkeypress="return isNumber(event, this)" data-srno="'+count+'">';

  $('#test').append(html_code);
});
-3
John 30 Дек 2018 в 03:06

1 ответ

Лучший ответ

Вместо этого вы должны использовать document.getElementById(), например:

var num1 = Number(document.getElementsByName('price[]').value);
var num2 = Number(document.getElementsByName('tax[]').value);

Причина заключалась в том, что вы пытались получить доступ к свойству value массива, возвращаемого getElementsByName, которого не существует - вам пришлось бы сначала использовать [0], чтобы получить доступ к самому элементу .

1
Jack Bashford 30 Дек 2018 в 00:25