jQuerys .val()没有设置bootstrap-input-value

时间:2016-05-14 14:06:07

标签: jquery twitter-bootstrap

我现在正在寻找一段时间没有结果所以我决定问你们。 :)

我有一些Bootstrap输入,如:

<input class='form-control' id='start_name' />
<input class='form-control' id='end_name' />

Normaly我会选择像

这样的数据
var myValue = $('#start_name').val();

我遇到的问题是,我想选择一个包含指定字符串的元素,该字符串在之前设置为:

$('#start_name').val('foobar');

显然.val()没有设置输入字段的值。我必须额外添加一行像

$('#start_name').attr('value', 'foobar');

或像

一样组合
$('#start_name').val('foobar').attr('value', 'foobar');

我想用来选择相关元素并将其清空的实际代码是:

$("input[value='" + theSpecifiedValue + "']").val('');

(从包含字符串的X输入中选择输入)

但是由于我使用bootstrap,我必须明确地设置.attr()

的值

是否有一些我缺失或这是唯一的方法吗?

Here is a Fiddle

3 个答案:

答案 0 :(得分:2)

  1. 如果您使用$('#start_name').val('here')$('#start_name').prop('value','here') 正在分配值     THIS.VALUE

    $('#start_name').val(); // here

    并使用值

    进行搜索
    $('body input').filter(function() { return this.value == 'here' }).val('gone');
    
  2. $('#start_name').attr('value', 'here1'); 正在设置值     this.attributes

    $('#start_name').attr('value'); // here1

    并使用值

    进行搜索
    $("body").find( "input[value='here1']" )
    

答案 1 :(得分:1)

有点迂回的方式,但我们可以做到

$($.grep($("body").find("input"),function(e,i){ return e.value === myValue })).val('gone');

jQuery选择器使用文字HTML进行选择。使用.val()设置值可设置html对象的属性“value”。它没有设置更改HTML中的文字文本,这是jQuery与其选择器一起使用的内容。因此,我们获取所有输入并返回属性“value”与搜索字符串匹配的项目列表。您可以使用for循环,映射等,而不是使用grep,并可能使查找更快。

答案 2 :(得分:-1)

尝试

 $(function () {
        $("body").find("input[value='" + theSpecifiedValue + "']").val('');
 });