如何使用jQuery更改输入字段的值?

4

我正在尝试使用jQuery来更改输入文本框的值,但它不起作用, 以下是我的代码...

    <form method="get">
            <input id="temp" type="text" name="here" value="temp value" />
            <input class="form" type="radio" value="1" name="someForm" /> Enter something
            Here: <input id="input" type="text" name="here" value="test value" />
    </form>

    <script>

    $(document).ready(function () {
        $('.form').click(function () {
            var newvalue = $("#input").val();
            $("#temp").val(newvalue);
            $("#input").val($("#temp").val());
        });
    });

</script>

"#input"文本框的值没有改变!!! 为什么会这样?? 我错过了什么?? 非常感谢 附:即使我写了...

,文本框的值也没有改变,但输入框的值属性并未改变!!

var value = $("#temp").val();
$("#input").attr("value", value);

你缺少了一个井号(#),我想说。 - SilentGhost
目标是什么?看起来有几个小问题,其中任何一个都可能导致你所看到的问题,但如果不知道你要达到的最终结果是什么,我认为没有人会给出你所需的答案。 - Richard JP Le Guen
我的目标是输入一些文本,并将“#input”文本框的“value”属性更改为输入的值。 - bombo
不,那只是你实现代码的一小部分 :) 我认为我们应该知道你的目标,而不是关注你使用的选择器语法。我看到的是,当用户点击单选按钮时,你正在读取id="input"元素的值,将id="temp"输入框的值设置为相同值,然后再次将id="input"输入框的值设置为相同值。这似乎很奇怪;最后一步($("#input").val($("#temp").val());)如何有助于你想要做的事情呢? - Richard JP Le Guen
3个回答

6
这个值没有改变是因为你给已经存在的#input赋值了。

仔细看一下:

var newvalue = $("#input").val();
$("#temp").val(newvalue);
$("#input").val($("#temp").val());
  1. #input的值设为foo
  2. 你将newvalue = #input的值 = 'foo'赋值给了变量newvalue
  3. 你设置了#temp的值:
    #temp的值 = newvalue = #input的值 = 'foo'
  4. 你设置了#input的值:
    #input的值 = #temp的值 = newvalue = #input的值 = 'foo'

所以,根据哪个字段应该得到哪个值,你需要改变这个过程;)


那就是逻辑上的问题...之前Lina在询问这个语法.. $("input").val($(temp).val());所以现在你是对的...在纠正了正确的语法后..!!! - Mohit Jain

2
你选择的是input而不是#input,因此你设置的是第一个<input>的值,而不是具有id="input"的元素。
第一个输入框是#temp,所以你正在将该输入框的值设置为其当前值。

1

尝试:

$("#input").val($('#temp').val());

改为:

$("input").val($(temp).val());

好的,文本值正在改变,那么"value"属性呢?它不会改变!!!即使我写了... var x = $("temp").val(); ("#input").attr("value", "x"); - bombo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接