2012-05-27 4 views
-2

Я выполняю задание для объекта uni и имею некоторые проблемы с javascript. Я хочу иметь возможность изменять значение поля ввода на основе значения другого поля. Короче говоря, цель состоит в том, чтобы ввести количество продукта в одном поле и изменить поле рядом с ним, чтобы отобразить общую сумму денег, необходимую для покупки этого количества продуктов.изменить значение ввода с помощью javascript

Когда я запускаю свой html, введенное количество не изменяет значение поля затрат, а im думает, что в моем javascript должно быть что-то неправильно.

Вот копия моей функции javascript и связанного с ней html для ее выполнения внутри.

SCRIPT:

function calcRowWash(){ 
    var theForm = document.forms["orderform"]; 
    var x = theForm.getElementById("quantc").value; 
    var quantity = 0; 
    if(x.value!=""){ 
     quantity = parseInt(x.value); 
    } 
    var totalC = (quantity*0.30); 
    document.getElementById("totc").value = totalC; 
    return; 
} 

HTML:

<td width = "90px" align ="left"><input type = "text" id ="quantc" name = "quantWash" size = "5" tabindex = "13" onblur="calcRowWash()"/></td> 
<td width = "90px" align ="left"><input type = "hidden" id ="totc" name = "washtotal" size = "5" tabindex = "14" value=""/></td>  

Спасибо за помощь !.

+0

Я пытаюсь отформатировать код разумно (как код), чтобы помочь, и удалить ненужные вспомогательные подсказки ('' 'Введите код здесь \ '' сообщений). Я не пытаюсь конкурировать. –

+0

попробуйте отладить ваш код и посмотреть, что происходит. –

ответ

0
var theForm = document.forms["orderform"]; 
var x = theForm.getElementById("quantc").value; 

Это избыточно. Идентификаторы уникальны по всему документу, так что это будет достаточно:

var x = document.getElementById('quantc'); 

отметить также, что я удалил .value - это проблема, потому что вы тогда пытались получить значение ... значения.

+1

Может ли downvoter объяснить, почему ответ не является удовлетворительным? –

-2

Вы можете использовать этот JavaScript код:

var inp = document.getElementById("inp"); // getting the Input ID 
function change_value() { 
    inp.value = 'Your Value'; // <-- value 
} 

Вы можете добавить событие:

inp.onfocus = change_value; 
inp.onblur = another function with another action; 

Good Luck Ли и Хороший день.

+0

Не отвечает на вопрос каким-либо образом ... –

-1
<form name="myForm" action="#" method="POST"> 
    <input type = "text" id="quantc" name = "quantWash" size = "5" tabindex = "13" onblur="calcRowWash()"/> 
    <input type = "hidden" id ="totc" name = "washtotal" size = "5" tabindex = "14" value=""/> 
</form> 

function calcRowWash(){ 
    var quantity = document.myForm.quantWash.value; 
    var price = 10.0; 
    document.myForm.washtotal.value = quantity * price; 
} 

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

+0

Это не работает, я понимаю, как читать поле ввода.но по какой-то причине при запуске страницы, содержащей скрипт, и ввода значения в поле ввода, значение поля промывочного потока ничего не отображает и остается пустым. почему это так, мой вопрос ... не должна ли функция запускаться по событию onblur? – Bundy

+0

ваше второе поле ввода скрыто nullpointr

+0

Youre правый он делает. я должен был создать новую страницу с той же таблицей и javascript, чтобы она работала. должно быть что-то не так с моим javascript или html в другом месте – Bundy

0

Это работает.

calcRowWash = (function(){ 
    var x = document.getElementById("quantc"); 
    var quantity = 0; 

    if (x.value!="") quantity = parseInt(x.value); 

    var totalC = (quantity*0.30); 
    document.getElementById("totc").value = totalC; 

}); 

JSFiddle.

0

попробовать с этим кодом

function calcRowWash() { 
     var x = document.forms[0]['quantc'].value; 
     var quantity = 0; 
     if (x != "") { 
      quantity = parseInt(x); 
     } 
     var totalC = (quantity * 0.30); 
     document.forms[0]['totc'].value = totalC.toString(); 

    } 

Html Markup, я изменил скрытый тип для текстового поля и это работает для меня.

<td width = "90px" align ="left"><input type = "text" id ="quantc" tabindex = "13" onblur="calcRowWash()"/></td> 
<td width = "90px" align ="left"><input type = "text" id ="totc" tabindex = "13"/></td> </div> 
0
function calcRowWash(){ 
    var theForm = document.forms["orderform"]; 
    var x = theForm.getElementById("quantc").value; 
    var quantity = 0; 

    // Check if it is not empty 
    if(x.value != ""){ 
     // Check if it is a valid number 
     if(x/x == 1){ 
      quantity = parseInt(x.value); 
     } 
    } 
    var totalC = (quantity * 0.30); 
    document.getElementById("totc").value = totalC; 
} 

это работает для меня.