2013-04-30 79 views
0

HTML代码:jQuery和输入值选择问题

<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的改变是不可输入[值...]变更后的选择,它仍然基于旧值进行选择。 这里是现场代码http://jsfiddle.net/WwRVy/, 所以问题是如何选择基于最新值的输入?

+0

需要通过输入来迭代和过滤 – 2013-04-30 10:34:52

+0

你尝试'$( “输入[值^ = '001']”)'..? – 2013-04-30 10:36:08

+0

你不能给你的输入一个'id',或者只是根据它的'name'选择元素吗? – billyonecan 2013-04-30 10:38:35

回答

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(); 
}); 
}); 
0

我的猜测是,jQuery的.val()方法改变财产值,而jQuery选择与工作属性

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

FIDDLE

PS:有使用[0]符号jQuery对象,并更改其属性value.attr()改变它是几种解决方法,也就是你最好改变你的选择元素的方法,即给它分配一个id或一个class

1

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

$("#asd").click(function(){ 
    $("input[name='input-1']").val("001-2007"); 
}); 
+0

这可能是一个片段,它显示了选择器没有选择它应该选择的问题。 – 2013-04-30 10:46:35

0

其臭名昭著的JavaScript的问题之一, 尝试

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

注意单引号和双引号是以防万一换

0

尝试

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

演示:Fiddle