Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不提交表单的情况下获取javascript中输入字段的值?_Javascript_Jquery_Ajax_Input Field - Fatal编程技术网

如何在不提交表单的情况下获取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

我对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=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;
};

您的代码工作正常。它将输入字段的值分配给var
NameValue
。你解释的和你做的是两件不同的事情

您需要做的一切就是将代码分配给正确的事件:

<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。