J'essaie d'utiliser JavaScript pour obtenir la valeur d'une zone de texte HTML, mais cette valeur ne vient pas après un espace.
Par exemple:
<input type="text" name="txtJob" value="software engineer">
Je reçois seulement: "logiciel" de ce qui précède. J'utilise un script comme celui-ci:
var jobValue = document.getElementById('txtJob').value
Comment puis-je obtenir la valeur complète: "ingénieur logiciel"?
+1 Gumbo: ‘id’ est le moyen le plus simple d’accéder aux éléments de la page. IE (antérieure à la version 8) renverra les éléments avec un ‘nom’ correspondant s’il ne trouve rien avec l’ID donné, mais qu’il s’agit d’un bogue.
je ne reçois que des "logiciels".
id-vs-name n'affectera pas cela; Je suppose que ce qui s’est passé est que (contrairement à l’exemple de code), vous avez oublié de citer votre attribut ‘value’:
<input type="text" name="txtJob" value=software engineer>
Votre élément n'a pas d'identifiant mais juste un nom. Vous pouvez donc utiliser la méthode getElementsByName()
pour obtenir une liste de tous les éléments portant ce nom:
var jobValue = document.getElementsByName('txtJob')[0].value // first element in DOM (index 0) with name="txtJob"
Ou vous attribuez un ID à l'élément:
<input type="text" name="txtJob" id="txtJob" value="software engineer">
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);
le problème que vous n'utilisez pas l'encodage pour les valeurs d'entrée à partir de la forme donc pas de navigateur en ajoute ...
ontop a quelques problèmes en tant qu'opérations de codage/décodage unicode donc utiliser cette fonction
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);
<!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>
Définissez l'attribut id
de input
à txtJob
. Votre navigateur est bizarre lorsque vous appelez getElementById
.
Si vous utilisez ASP.NET, les balises de code côté serveur dans les exemples ci-dessous fourniront l'identifiant de contrôle exact, même si vous utilisez des pages maîtres.
Javascript:
document.getElementById("<%=MyControlName.ClientID%>").value;
JQuery:
$("#<%= MyControlName.ClientID %>").val();
Si c'est sous une forme alors ce serait:
<form name="jojo">
<input name="jobtitle">
</form>
Ensuite, vous diriez en javascript:
var val= document.jojo.jobtitle.value
document.formname.elementname
Fourni quand vous voulez la valeur de la zone de texte. Un simple:
<input type="text" value="software engineer" id="textbox">
var result = document.getElementById("textbox").value;
var jobValue=document.FormName.txtJob.value;
Essayez ce code ci-dessus.
jobValue: nom de la variable.
FormName: Nom du formulaire en HTML.
txtJob: nom de la zone de texte
Vous devez changer votre code comme ci-dessous: -
<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>
Le problème est que vous avez fait un Petite erreur!
C’est le code JS que j’utilise:
var jobName = document.getElementById("txtJob").value;
Vous ne devriez pas utiliser name = "". utilisez plutôt id = "".
Cela devrait être simple en utilisant 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
Si vous utilisez un contrôle utilisateur et souhaitez obtenir des valeurs de zone de texte, vous pouvez utiliser le code ci-dessous:
var result = document.getElementById('LE_OtherCostsDetails_txtHomeOwnerInsurance').value;
Ici, LE_OtherCostsDetails
est le nom du contrôle utilisateur et txtHomeOwnerInsurance
est l'id de la zone de texte.
parce que vous avez utilisé l’espace entre l’ingénieur logiciel html/php ne prend pas en charge l’espace entre les valeurs dans la zone de texte, vous devez utiliser ce code<input type="text" name="txtJob" value=software_engineer>
Il fonctionnera
Définir l'identifiant pour la zone de texte. c'est à dire,
<input type="text" name="txtJob" value="software engineer" id="txtJob">
En javascript
var jobValue = document.getElementById('txtJob').value
En Jquery
var jobValue = $("#txtJob").val();