2009-04-18 6 views
91

Я пытаюсь получить значение из HTML текстового поля, чтобы использовать JavaScript, но значение не приходит после пустого пространстваКак получить значение текстового поля в JavaScript

Например:

<input type="text" name="txtJob" value="software engineer"> 

I только получить: «программное обеспечение» из вышеперечисленного. Я использую сценарий следующим образом:

var jobValue = document.getElementById('txtJob').value 

Как я могу получить полную стоимость: «инженер-программист»?

ответ

52

+1 Gumbo: «ид» является самый простой способ доступа к элементам страницы. IE (предварительная версия 8) вернет вещи с соответствующим «именем», если он не сможет найти что-либо с данным идентификатором, но это ошибка.

Я получаю только «программное обеспечение».

id-vs-name не повлияет на это; Я подозреваю, что это произошло в том, что (в отличие от примера кода) вы забыли указать ваш «значение» атрибут:

<input type="text" name="txtJob" value=software engineer> 
5

Установите атрибут idinput на номер txtJob. Ваш браузер действует причудливо, когда вы вызываете getElementById.

68

Ваш элемент не имеет идентификатора, а просто имени. Таким образом, можно либо использовать getElementsByName() метод, чтобы получить список всех элементов с этим именем:

var jobValue = document.getElementsByName('txtJob')[0].value // first element in DOM (index 0) with name="txtJob" 

Или присвоить идентификатор элемента:

<input type="text" name="txtJob" id="txtJob" value="software engineer"> 
3

Если он находится в форме, то это было бы:

<form name="jojo"> 
<input name="jobtitle"> 
</form> 

Тогда вы сказали бы в JavaScript:

var val= document.jojo.jobtitle.value 

document.formname.elementname 
8
var word = document.getElementById("word").value;//by id 
or 
var word = document.forms[0].elements[0].value;//by index 
//word = a word from form input 
var kodlandi = escape(word);//apply url encoding 

alert(escape(word)); 
or 
alert(kodlandi); 

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

имеет некоторые наверх проблемы, как Юникода операций кодирования/декодирования так использовать эту функцию кодирования строки/массивы

function urlencode(str) 
{ 
// http://kevin.vanzonneveld.net3.  
// + original by: Philip Peterson4.  
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)5.  
// *  example 1: urlencode('Kevin van Zonneveld!'); 
// *  returns 1: 'Kevin+van+Zonneveld%21'7. 
    var ret = str; 
    ret = ret.toString(); 
    ret = encodeURIComponent(ret); 
    ret = ret.replace(/%20/g, '+'); 
    return ret; 
} 


ex. 
var word = "some word"; 
word = urlencode(word); 
3

Предоставленные, когда вы хотите получить значение текстового поля , Простые один:

<input type="text" value="software engineer" id="textbox"> 

var result = document.getElementById("textbox").value; 
3

Если вы используете ASP.NET, теги коды на стороне сервера в этих примерах ниже обеспечат точный идентификатор элемента управления, даже если вы используете мастер-страницу.

Javascript:

document.getElementById("<%=MyControlName.ClientID%>").value; 

JQuery:

$("#<%= MyControlName.ClientID %>").val(); 
+0

Разве это не ASP? – 8bitslime

0

Если вы используете какой-либо пользовательский элемент управления и хотите, чтобы получить какие-либо значения текстового поля, то вы можете использовать следующий код:

var result = document.getElementById('LE_OtherCostsDetails_txtHomeOwnerInsurance').value; 

Здесь LE_OtherCostsDetails, является именем пользовательского элемента управления и txtHomeOwnerInsurance является t он id текстового поля.

5
<!DOCTYPE html> 
<html> 
<body> 
<label>Enter your Name here: </label><br> 
<input type= text id="namehere" onchange="displayname()"><br> 


<script> 
function displayname() { 
    document.getElementById("demo").innerHTML = 
document.getElementById("namehere").value; 
} 

</script> 


<p id="demo"></p> 

</body> 
</html> 
0



Проблема заключается в том, что вы сделали Крошечные ошибку!

Это код JS я использую:

var jobName = document.getElementById("txtJob").value; 

Не следует использовать имя = "". вместо этого используйте id = "".

0

вам нужно изменить код, как показано ниже: -

<html> 
<body> 
<div> 
<form align="center" method=post> 
    <input id="mainText" type="text" align="center"placeholder="Search"> 

    <input type="submit" onclick="myFunction()" style="position: absolute; left: 450px"/> 
</form> 
</div> 
<script> 
function myFunction(){ 
    $a= document.getElementById("mainText").value; 
    alert($a); 
     } 
</script> 
</body> 
</html> 
0

, потому что вы использовали пространство между программным обеспечением инженер HTML/PHP не будет поддерживать пространство между стоимостью под текстовым полем, вы должны использовать этот код <input type="text" name="txtJob" value=software_engineer> Он будет работать

0
var jobValue=document.FormName.txtJob.value; 

Попробуйте этот код выше.

jobValue: имя переменной.
FormName: имя формы в html.
txtJob: Имя Textbox

0

Это должно быть просто с помощью JQuery:

HTML:

<input type="text" name="txtJob" value="software engineer"> 

JS:

var jobValue = $('#txtJob').val(); //Get the text field value 
    $('#txtJob').val(jobValue);  //Set the text field value 
0

Set ID для текстового поля. т.е.

<input type="text" name="txtJob" value="software engineer" id="txtJob"> 

В JavaScript

var jobValue = document.getElementById('txtJob').value 

В Jquery

var jobValue = $("#txtJob").val(); 
Смежные вопросы