2015-01-18 2 views
2

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

HTML

<input type="text" id="userInput" value="" name="title" 
     placeholder="Enter the name here" required="required"/> 
<input type="button" id="text_value" value="Set Input"/> 
    <!-- I have this button here because I think maybe 
    I should have a button to change default value but 
    I don't know the javascript to do this --> 

Javascript

// Gets input value id 

    var theuserInput = $("#userInput").val(); 

Причина я не показал строки запроса кода, так как входное значение передается вместе в URL, но проблема в том, что значение входного значения по умолчанию «undefined» передается вместо фактического ввода пользователем.

Любые решения?

ДОПОЛНИТЕЛЬНЫЙ КОД

Ok так вот строки запроса, при нажатии на кнопку 'пропуск' на вход передается вместе в строку запроса:

$('.pass').click(function() { 
    window.location.href = 'http://lala.com/passing.php?input=' + theuserInput + ''; 
    return false; 
}); 
+0

Вы пытались полностью избавляя 'значение = ""'? – StackOverQuestions

+0

Вы получаете 'undefined' или пустую строку (' '' ')? –

+2

добавить свой полный код js. – sandipon

ответ

3

Попробуйте вместо этого:

$('.pass').click(function() { 
    var theuserInput = $("#userInput").val(); 
    window.location.href = 'http://lala.com/passing.php?input=' + theuserInput + ''; 
    return false; 
}); 

this удаляется перед вызовом метода val().

Причина, почему вы получаете undefined потому, что theuserInput не определена внутри анонимной функции сферы передается #click методы. Двигатель JS пытается найти theuserInput внутри «enlobing» областей рекурсивно, пока не достигнет глобального масштаба, или не найдет значение theuserInput в одной из следующих последовательностей «englobing». Поскольку переменная theuserInput не может быть найдена в какой-либо области, это влияет на значение по умолчанию undefined.

+0

Пробовал и не работал – KingAlfredChameleon

+1

Этот код * делает * работу, если нет ничего плохого. Я думаю, вам нужно предоставить больше кода в своем вопросе. – HaukurHaf

+1

@KingAlfredChameleon Смотрите это [скрипка] (http://jsfiddle.net/6qew4vzv/). Он работает. –

0
var theuserInput = document.getElementById("userInput").value; 
+0

Не работает, проблема в том, что значение по умолчанию ввода не обновляется. – KingAlfredChameleon

+2

Это, по-видимому, еще один способ указать «var theuserInput = $ (« # userInput »). Val();' но без jquery - он ничего не добавляет. –