Я использую три функции javascript для суммирования значений полей ввода. Но первые две функции работают хорошо, но третья функция не работает.
вот мои javascripts:
<script language="javascript">
function addNumbers()
{
var val1 = parseInt(document.getElementById("ot").value);
var val2 = parseInt(40);
var ansD = document.getElementById("totalot");
ansD.value = val1 * val2;
}
function addSecincome(){
var val1 = parseInt(document.getElementById("totalot").value);
var val2 = parseInt(document.getElementById("mc").value);
var val3 = parseInt("1024");
var ansD = document.getElementById("secincome");
ansD.value = val3 * val1 + val2;
}
function addIncome(){
var val1 = parseInt(document.form.getElementById("totalot").value);
var val2 = parseInt("150");
var ansD = document.form.getElementById("INC");
ansD.value = val2 * val1 ;
}
</script>
Here is my html codes:
<tr height="20">
<td height="20">BUYER</td>
<td colspan="3"><input type="text" name="buyer" value=" " /></td>
<td>OT</td>
<td><input id="ot" type="text" name="ot" value="" /></td>
<td><input type="text" id="totalot" name="totalot" onclick="javascript:addNumbers()" value="" /></td>
<td>MC</td>
<td><input id="mc" type="text" name="mc" value="" /></td>
<td colspan="2"><input id="secincome" type="text" onclick="javascript:addSecincome()" name="2ndincome" value="" /></td>
<td>SMV</td>
<td><input type="text" name="smv" value= " " /></td>
<td>O/QTY</td>
<td><input type="text" name="oqyt" value=" " /></td>
<td>TTL AVG</td>
<td><input type="text" name="planeffi" value=" " /></td>
</tr>
<tr height="20">
<td height="20">DAY INPUT</td>
<td colspan="3"><input type="text" name="dayinput" value=" " /></td>
<td colspan="2">PLAN HOUR</td>
<td> <input type="text" name="planhour" vaue="10" /></td>
<td colspan="2">PRO/LOSS</td>
<td colspan="2"><input id="ploss" type="text" onclick="javascript:pp();" name="proloss" value="" /></td>
<td>TGT</td>
<td>T/TGT</td>
<td>CUTTING</td>
<td><input type="text" name="cutting" value=" " /></td>
<td rowspan="2"><input type="text" name="ttlavg" value=" " /></td>
<td> </td>
</tr>
Хотя функции syntex одинаковы, третья функция не работает для меня. Я пробовал с другим идентификатором ввода, но он не работает для меня. но работают первые две функции. Я не понимаю об этом выпуске, и у меня нет такой проблемы раньше.
Вам нужна ваша помощь.
Изменить с document.form.getElementById("totalot");
document.getElementById("totalot");
function addIncome() {
var val1 = parseInt(document.getElementById("totalot").value); //Removed .form here
var val2 = parseInt("150");
var ansD = document.form.getElementById("INC"); //Removed .form here too
ansD.value = val2 * val1 ;
}
Я также просто понял, что ваш HTML-код не ссылается на вашу addIncome()
любом месте? Вам нужно прикрепить его к событию в вашем HTML. Другие две функции запуска onclick
входного окна.
<input id="secincome" type="text" onclick="javascript:addSecincome()" name="2ndincome" value="" />
Я бы предложил изменить onclick
на onchange
. и тогда вам нужно добавить следующую строку: onchange="addIncome()"
в нужное текстовое поле, чтобы запустить функцию, которая не работает.
Также val2 = parseInt("150")
- это бессмысленно, вы создаете строку и меняете ее на число? - просто напишите val2 = 150
, опуская котировки ""
вокруг значения, которое будет числом. или даже проще ansD.value = 150 * val1;
, Нет необходимости назначать 150 переменной
Могу ли я также предложить взглянуть на то, чтобы сделать ваш код более динамичным, создав одну повторно используемую функцию, передав параметры в функцию, после чего вы можете повторно использовать.
Попробуйте это вместо этого!
function addIncome() {
var val1 = parseInt(document.getElementById("totalot").value);
var val2 = parseInt("150");
var ansD = document.form.getElementById("INC");
ansD.value = val2 * val1 ;
}
document.form.getElementById
и не поняли, что это разница между вашими рабочими функциями и вашими сбойными? Кроме того, проверка консоли на наличие ошибок должна быть первым шагом, который необходимо предпринять, когда все работает не так, как вы этого хотите.