0

html代码:

<input type="text" name="input-1" class="input-1" value="001 / 2007">
    <input type="button" id="asd" value="check">

JS代码

$(document).ready(function (){
    $("#asd").click(function (){
        alert($("input[value='001 / 2007']").val());
        $("input[value='001 / 2007']").val("001-2007");
    });
});

通过 Jquery 更改的值在更改后无法用于 input[value...] 选择器,它仍然是基于旧值进行选择。这是实时代码http://jsfiddle.net/WwRVy/,所以问题是如何根据最新值选择输入?

4

6 回答 6

1

为什么不选择基于名称或仅选择类?

$("#asd").click(function (){
    $("input[name='input-1']").val("001-2007");
});
于 2013-04-30T10:36:46.357 回答
0

尝试这个

html代码:

<input type="text" name="input-1" class="input-1" value="001 / 2007">
<input type="button" id="asd" value="check">

JS代码

$(document).ready(function (){
 $("#asd").click(function (){
    alert($("input").val());
    $("input").val();
 });
});
于 2013-04-30T10:36:06.177 回答
0

我的猜测是,jQuery.val()方法会更改属性值,而 jQuery 选择器与attributes一起使用。有几种解决方法,即使用[0]jQuery 对象的表示法并更改其value属性或更改它.attr()

$("input[value='001 / 2007']").attr("value", "001-2007");

小提琴

PS:您最好更改选择该元素的方式,即为其分配 anid或 a class

于 2013-04-30T10:36:28.783 回答
0

它是臭名昭著的 JavaScript 问题之一,请尝试

alert($('input[value="001 / 2007"]').val());

注意单引号和双引号被交换了

于 2013-04-30T10:37:00.587 回答
0

你想做喜欢

  $("input[value=001 / 2007]").val("001-2007");

修改后的 jsfiddle 链接为http://jsfiddle.net/WwRVy/5/

于 2013-04-30T10:37:32.797 回答
0

尝试

$(document).ready(function (){
    $("#asd").click(function (){
        var inputs = $('input').filter(function(){
            return $(this).val() == '001 / 2007';
        });
        alert(inputs.val());
        inputs.val("001-2007");
    });
});

演示:小提琴

于 2013-04-30T10:37:53.280 回答