2016-05-14 48 views
1

我正在尋找一段時間,沒有結果,所以我決定問你們。 :)jQuerys .val()沒有設置自舉輸入值

我有這樣一些引導-輸入:

<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輸入中選擇包含字符串的輸入)

但是由於我使用引導程序,我不得不明確必須設置值.attr()

有沒有一些即時失蹤或這是唯一的方法嗎?

Here is a Fiddle

+0

只是選擇包含指定字符串的元素然後清空它? –

+0

@ShadyAlset是的。其實它是一個畫布元素地圖,用戶可以通過點擊地圖選擇一個繪製的節點。這將在輸入字段中填入一個值。當他再次選擇它時,輸入字段應該是空的。由於有2個輸入,因此腳本應檢查所選節點名出現在哪個節點上並將其清空。當然,儘可能減少代碼:) – Dwza

+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

    ,並用值到搜索

    $("body").find("input[value='here1']") 
    
+0

我認爲第一個解決方案就是即時搜索。其實第二個是我現在正在做的。但我必須確定觀點,而不僅僅是屬性。 – Dwza

-1

嘗試

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

對不起,使用'$(「input [value ='」+ theSpecifiedValue +「'」)「val('');''我剛剛添加了一個小提琴:) – Dwza

1

位的一種迂迴的方式,但我們可以做

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

jQuery選擇使用文字HTML選擇。使用.val()設置值可設置html對象的屬性「值」。它不會設置更改HTML中的文本文本,這是jQuery與其選擇器一起使用的內容。因此,我們抓住所有輸入並返回屬性「值」與我們的搜索字符串匹配的項目列表。您可以使用for循環,map等來代替使用grep,並可能使查找速度更快。

+1

您的解決方案是正確的,但Pavans解決方案是有點短。 Actully是一樣的,但用過的jquery看起來更好一些:)仍然是來自這裏的+1,我希望所有閱讀這篇文章的人都會投票贊成。 – Dwza

相關問題