如何在不提交表单的情况下获取javascript中输入字段的值?
我对javascript相当陌生,对于如何在不提交表单的情况下获取输入字段的值有疑问。我有下面的一小段代码,我将其与实时验证脚本结合使用,以验证字段如何在不提交表单的情况下获取javascript中输入字段的值?,javascript,jquery,ajax,input-field,Javascript,Jquery,Ajax,Input Field,我对javascript相当陌生,对于如何在不提交表单的情况下获取输入字段的值有疑问。我有下面的一小段代码,我将其与实时验证脚本结合使用,以验证字段 <form name="FormName" method="post" /> <input type="text" id="nameValidation" value="HelloWorld" /> <script type="text/javascript"> var NameVa
<form name="FormName" method="post" />
<input type="text" id="nameValidation" value="HelloWorld" />
<script type="text/javascript">
var NameValue = document.forms["FormName"]["nameValidation"].value;
</script>
</form>
var NameValue=document.forms[“FormName”][“nameValidation”].value;
我希望var NameValue是您在输入字段中键入的值,这样我就可以在验证后出现的消息中使用它。当我在不提交表单的情况下更改输入字段的值时,var NameValue仍然设置为“HelloWorld”。在做了一些研究之后,我发现我可以使用jQuery及其函数serialize()来解决这个问题。没有jQuery有没有办法做到这一点?没有jQuery:
var value = document.getElementById('nameValidation').value;
您使用的语法可以通过名称而不是id获取输入
如果要在该值更改时使用该值,可以执行以下操作:
var nameValidationInput = document.getElementById('nameValidation');
function useValue() {
var NameValue = nameValidationInput.value;
// use it
alert(NameValue); // just to show the new value
}
nameValidationInput.onchange = useValue;
nameValidationInput.onblur = useValue;
使用onchange或onblur事件调用以下代码: var NameValue=document.forms[“FormName”][“nameValidation”].value 这样,当光标离开文本框时,它将被激活
<input type="text" id="nameValidation" value="HelloWorld" onblur="changeVal();" />
<script type="text/javascript">
function changeVal() {
var NameValue = document.forms["FormName"]["nameValidation"].value;
alert(NameValue);
}
</script>
函数changeVal(){
var NameValue=document.forms[“FormName”][“nameValidation”].value;
警报(名称值);
}
您可以让客户端代码响应文本框值的更改,如下所示:
$(document).ready(function(){
$("#nameValidation").on('change', function() {
var value = $("#nameValidation").value;
//do your work here
}
})
在您的示例中,该变量仅获取当时分配给它的值。当文本框更新时,它不会更新。您需要触发函数[onchange或onblur或keypress],并将变量重置为新值
<form name="FormName" method="post" />
<input type="text" id="nameValidation" value="HelloWorld" />
<script type="text/javascript">
var myTextbox = document.getElementById("nameValidation");
var nameValue = myTextbox.value;
myTextbox.onchange = function() {
nameValue = myTextbox.value;
};
</script>
</form>
var myTextbox=document.getElementById(“名称验证”);
var nameValue=myTextbox.value;
myTextbox.onchange=函数(){
nameValue=myTextbox.value;
};
您的代码工作正常。它将输入字段的值分配给varNameValue
。你解释的和你做的是两件不同的事情
您需要做的一切就是将代码分配给正确的事件:
<form name="FormName" method="post" />
<input type="text" id="nameValidation" value="HelloWorld" onchange="myFunction()"/>
</form>
<script type="text/javascript">
function myFunction(){
var NameValue = document.forms["FormName"]["nameValidation"].value;
alert(NameValue);
}
</script>
函数myFunction(){
var NameValue=document.forms[“FormName”][“nameValidation”].value;
警报(名称值);
}
. 对不起,这不是jQuery吗?这确实是jQuery。他问是否有不使用jQuery的方法,但正如示例所示,如果使用jQuery,代码会更优雅、可读性更强。我认为您不理解我的问题。我希望在用户更改var NameValue时更新它。这样,在用户更改值后调用var时仍然是“HelloWorld”。我调用变量值而不是NameValue是为了尊重命名最佳实践,但当用户更改输入内容时,变量(现在使用新名称)确实会更改值(在useValue函数内)。我在编辑后使用了此脚本,但当我将其添加到脚本标记中时,脚本的其余部分似乎不再执行。另一个用户的脚本出现了同样的问题,LiveValidation脚本似乎出现了问题,这很奇怪。@BlueCola您也应该将函数分配给特定事件。在同一个函数中写入赋值和验证,并在事件中调用它。下次我会写下不同的内容,我必须离开,对不起。@BlueCola在我的回答中包含URL,jquery。