2014-12-20 31 views
-4

我在HTML文檔的頁面上有一個表單,並且想知道是否有在javascript或jquery中添加標籤(#)的方法每個單詞的開始(可能有不止一個字輸入的)在HTML 5表單中爲每個單詞的開頭添加#標籤(#)

+1

這也就是說,在表單字段?在你的文件中,你嘗試了什麼? –

+0

在頁面加載時或當用戶正在輸入時? – putvande

+0

哈希標籤是一個以'#'爲前綴的整個單詞。 '#'是磅/數字符號。 – loganfsmyth

回答

1

您可以用keyup事件監聽器實現這一點,一些更換和的indexOf:

<input id="test"> 

<script> 
var a = document.getElementById('test'); 
a.addEventListener('keyup',addthis); 

function addthis() { 
    b = a.value.replace('#',''); 
    a.value = '#'+b 

    if (a.value.indexOf(' ')) 
    { 
    a.value = a.value.replace(' ','#'); 
    } 

} 
</script> 

DEMO

+0

寶寶,很棒!無論如何阻止它將空格標籤添加到空格? – RubberDucky4444

+0

@ user2640633試試這個,這是一個小小的錯誤,但有點作品http://jsfiddle.net/hotfwzcL/1/ – baao

+0

Jonathan Lonowski〜有很多不相關的jquery被固定在這個表單上。我可以很容易地放置它的HTML部分,但我有一個切換開關,當切換時改變窗體內的佔位符文本。我承認,我知道很少的JavaScript和jquery ....我的老師幫助我的大部分,我嘗試閱讀他的代碼,並試圖理解它,因爲它去 – RubberDucky4444

1

這做什麼你想要將光標移動到要引導的字段的末尾。

更新:使用​​insteead篩選出多個空格。

function addHash(event) { 
    if (event.keyCode === 32 && event.target.value.length) { 
     event.preventDefault(); 

     var elem = event.target, 
     val = elem.value; 

     if (val.slice(-1) !== '#') { 
      elem.value += ' #'; 
     } 
    } else if (!event.target.value.length) { 
     if (event.keyCode === 32) { 
      event.preventDefault(); 
     } 
     event.target.value = '#'; 
    } 
} 

我分叉寶的小提琴來測試。

DEMO

+0

不錯的一個!但如果你按兩次空間,它也會給你額外的#。 – baao

+0

@ RubberDucky4444請重新檢查驗證碼。它現在也將#添加到開頭,並執行您想要的任何操作。壓縮空間也不會破壞它(它確實打破了寶寶的想法:試着在代碼中留下空間)。如果你想刪除空格,只需在'elem.value + ='#';'中刪除##下面的空格。 – Makaze

0

你可以用jQuery的平變化eventlistner實現這一目標。

下面的腳本獲取inputfield的值,並將每個單詞分隔到一個空格「」,這使得它成爲一個數組。那麼它會循環搜索單詞的數組,如果單詞的開頭沒有「#」,則會添加一個單詞。那麼它會用新的值替換輸入字段中的舊值。

$('#input').on('change', function(e){ 
    var input_string = $(this).val(); 
    var words = input_string.split(" "); 
    var output = ""; 
    console.log(words); 
    $.each(words , function(i, word){ 
     console.log(word); 
     if(word.substr(0, 1) == "#") 
     {    
      output += word + " ";   
     } 
     else 
     { 
      output += "#" + word + " ";  
     } 
     console.log(output); 
    }); 

    $(this).val(output); 
}); 

http://jsfiddle.net/dgs9kapc/6/

+0

Makaze工程很好,除非它不會爲第一個單詞添加#號!感謝所有的幫助! – RubberDucky4444

+0

我想要輸出一個值。這就是爲什麼第一個字沒有得到#。我更新了小提琴和鏈接。 – firevirus

相關問題