2016-07-21 2 views
1

Javascript при добавлении поля ввода

//// JavaScript function to add input values display into another input field 
 
function calculate() { 
 
    var x = document.getElementById('fee_selector_holder').value; 
 
    var y = document.getElementById('content').value; 
 
    var result = document.getElementById('result'); 
 
    var myResult = x + y; 
 
    result.value = myResult; 
 

 
}
<input type="text" name="hostelfees" id="content" oninput="calculate()"> 
 

 
<input type="text" name="fee_id" id="fee_selector_holder" oninput="calculate()"> 
 

 
<input type="text" id="result" name="totalfee">

Я даю значения полей ввода его добавление concatination но не добавляя, пожалуйста, проверьте его на входной функции правильно или неправильно раз проверить то ответить мне вот это мой вопрос.

+0

значения не добавляются с символом добавления, но его работа с делением на множитель и вычитание – purender

ответ

1

У вас есть строки, вот почему они конкатенируются. Сделать целые числа: http://www.w3schools.com/jsref/jsref_parseint.asp

И это будет хорошо работать.

+0

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

1

Во-первых, когда вы читаете значения из DOM, они считываются как строка. Вам нужно будет использовать parseInt или parseFloat, чтобы преобразовать строку в целое число.

Во-вторых, оператор + имеет функцию переопределения для того, чтобы строка выступала в качестве оператора конкатенации.

Также обратите внимание, что я использовал .value || 0. Здесь, если значение не существует, выполнение арифметической операции над ним вернет NaN, добавив значение по умолчанию (0).

//// JavaScript function to add input values display into another input field 
 
function calculate() { 
 
    var x = document.getElementById('fee_selector_holder').value || 0; 
 
    var y = document.getElementById('content').value || 0; 
 
    var result = document.getElementById('result'); 
 
    var myResult = parseInt(x) + parseInt(y); 
 
    result.value = myResult; 
 

 
}
<input type="text" name="hostelfees" id="content" oninput="calculate()"> 
 

 
<input type="text" name="fee_id" id="fee_selector_holder" oninput="calculate()"> 
 

 
<input type="text" id="result" name="totalfee">

1

Вы должны проанализировать входные значения в целое, как все входные значения являются строка по умолчанию:

//// JavaScript function to add input values display into another input field 
 
function calculate() { 
 
    var x = document.getElementById('fee_selector_holder').value || 0; // default value 0 if input is blank 
 
    var y = document.getElementById('content').value || 0; // default value 0 if input is blank 
 
    var result = document.getElementById('result'); 
 
    var myResult = parseInt(x, 10) + parseInt(y, 10); // parse it here 
 
    result.value = myResult; 
 

 
}
<input type="text" name="hostelfees" id="content" oninput="calculate()"> 
 

 
<input type="text" name="fee_id" id="fee_selector_holder" oninput="calculate()"> 
 

 
<input type="text" id="result" name="totalfee">

0

Вы должны добавить атрибут result

result.setAttribute("value", myResult); 
Смежные вопросы