Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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 表单HTML未得到更新。_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 表单HTML未得到更新。

Javascript 表单HTML未得到更新。,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,这有点奇怪 <form> <input type="text" id="test" value="abc" /> <input type="submit" /> </form> <script> $('form').submit(function(ev){ ev.preventDefault(); alert($(this).html()); }); </script> $('form')

这有点奇怪

<form>
    <input type="text" id="test" value="abc" />
    <input type="submit" />
</form>

<script>
$('form').submit(function(ev){
   ev.preventDefault();
   alert($(this).html()); 
});
</script>

$('form')。提交(函数(ev){
ev.preventDefault();
警报($(this.html());
});


我更改了输入字段的值,然后单击submit以获取HTML,但是该值在HTML中没有更新?怎么回事?如何获取更新的HTML?

属性
显示默认值,而不是当前值(在同名的DOM属性中可用)


如果要获取当前值,则必须循环所有表单控件并从DOM获取它们的值。

用户输入的内容永远不会更改HTML。它是一个表单值,将作为参数发送到服务器

请看这里:


您正在读取初始HTML-页面上的更改值在此HTML中不会更改。请尝试:

$('form').submit(function(ev){
   ev.preventDefault();
   alert($('#test').val()); 
});

…获取输入值。

如果要获取任何输入值,请使用

$('form').submit(function(ev){
       ev.preventDefault();
       alert($("#test").val()); 
    });

$('input').val();

在表单中,您可以使用.serialize();更改值的输入不会更改文档对象模型(DOM)

解决方案

$('form').submit(function(ev) {
    ev.preventDefault();
    var newinputval = $(this).find('input[type=text]').val();
    var newhtml = $(this).html();
    newhtml = newhtml.replace("abc", newinputval);
    alert(newhtml);
});
如您所见,我首先接收新的输入值,然后获取HTML并用当前的输入值替换DOM的值。现在它正是您想要的


更改输入元素的属性值时,属性“Value”不会更改。您是要获取表单的HTML还是要获取输入“test”的更新值?必须使用$('test').val()获取输入值。如果要获取ajax的序列化格式的所有表单值,请使用$(this.serialize())
$('form').submit(function(ev){
       ev.preventDefault();
       alert($("#test").val()); 
    });

$('input').val();
$('form').submit(function(ev) {
    ev.preventDefault();
    var newinputval = $(this).find('input[type=text]').val();
    var newhtml = $(this).html();
    newhtml = newhtml.replace("abc", newinputval);
    alert(newhtml);
});