2014-12-20 4 views
0

Я борюсь с этим около часа и переписал его примерно три раза, и я не могу, чтобы жизнь меня определяла, в чем проблема, независимо от того, что , все, кроме поля имени, вернет значение, однако name просто вернется не определено. Я много раз перебирал это, я копировал + вставлял + модифицировал рабочие, нет ни одной опечатки, которую я могу найти ... Что здесь происходит?Java-скрипт неопределенная переменная, базовая форма html

Item Name: <input type="text" id="item_name" placeholder="Enter a price..."/> </br> 
Item Price: <input type="text" id="item_price" placeholder="Enter a price..."/> </br> 
Item Description: <input type="text" id="item_description" placeholder="Enter a description..."/> </br> 
Item Image(link): <input type="text" id="item_image" placeholder="Enter a image link..."/> </br> 
rsid: <input type="text" id="rs_item_id" placeholder="Enter a item id..."/> </br> 
rsam: <input type="text" id="rs_item_amount" placeholder="Enter a item amount..."/> </br> 
<button id="update">Update item</button> 
<script> 
    var name = document.getElementById("item_name"); 
    var price = document.getElementById("item_price"); 
    var desc = document.getElementById("item_description"); 
    var img  = document.getElementById("item_image"); 
    var rsid = document.getElementById("rs_item_id"); 
    var rsam = document.getElementById("rs_item_amount"); 
    var button = document.getElementById("update"); 
    button.addEventListener("click", function() { 
     alert("Name = " + name.value + "\n" 
      + "Price = " + price.value + "\n" 
      + "Desc = " + desc.value + "\n" 
      + "Img = " + img.value + "\n" 
      + "rsid = " + rsid.value + "\n" 
      + "rsam = " + rsam.value + "\n"); 
    }); 
</script> 

ответ

0

Положите name, price, desc, img, rsid, rsam внутри обработчика событий.

var button = document.getElementById("update"); 

button.addEventListener("click", function() { 
    var name = document.getElementById("item_name"); 
    var price = document.getElementById("item_price"); 
    var desc = document.getElementById("item_description"); 
    var img  = document.getElementById("item_image"); 
    var rsid = document.getElementById("rs_item_id"); 
    var rsam = document.getElementById("rs_item_amount"); 


    alert("Name = " + name.value + "\n" 
     + "Price = " + price.value + "\n" 
     + "Desc = " + desc.value + "\n" 
     + "Img = " + img.value + "\n" 
     + "rsid = " + rsid.value + "\n" 
     + "rsam = " + rsam.value + "\n"); 
}); 

Демо: http://jsbin.com/fivos/1/edit?html,output

1

Проблема заключается в том, что, поскольку вы их все глобальные переменные в name один столкновения с window.name собственности.

Либо использование другого имени переменной, либо создание замыкания будет работать

Смежные вопросы