[英]How can I get the value of an input field in javascript without submitting a form?
我是javascript新手,并且有一个关于如何在不提交表单的情况下获取输入字段值的问题。 我有以下一小段代码,与实时验证脚本结合使用以验证字段。
<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是您在输入字段中键入的值,因此我可以在验证后显示的消息中使用它。 当我在不提交表单的情况下更改输入字段的值时,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;
您的代码有效。 它将输入字段的值分配给var NameValue
。 您解释的内容和JQuery serialize
是两件事。
您需要做的就是将代码分配给正确的事件:
<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>
使用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>
您可以让客户端代码响应文本框值的更改,如下所示:
$(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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.