2010-04-04 85 views
2

我想在用戶輸入文本字段之前添加一個$符號,而不需要在用戶單擊提交時實際提交$。此外,我需要禁止用戶輸入任何內容,而不是輸入數字。我知道JQuery輸入掩碼(http://www.conetrees.com/2009/03/blog/jquery-masked-input-plugin-increase-usability-for-masked-format-input-fields),但是這個插件要求你設置用戶應該輸入的數字/字母的確切數量,這對我目前的項目沒有好處。任何人都可以想出一種方法來完成我上面描述的內容嗎?使用JS將字符添加到文本字段中

回答

2

一種方法是抓住一切除了從輸入美元,並將其存儲在一個隱藏字段:

$("form").submit(function() { 
    var total = $("#total").val(); 
    $("#hidden").val(total.replace("$", "")); 
}); 

這裏有一個完整的工作溶液(記住,它可能需要細化之前,符合真實世界):

$("form").submit(function() { 
    var total = $(".total").val(); 
    $("#hidden").val(total.replace("$", "")); 
}); 
$("#total").keypress(function() { 
    validateNumeric(); 
}).keyup(function() { 

    // if the user has pressed backspace and removed the dollar, put it back 
    if($(this).val() == null || $(this).val() == "") { 
     $(this).val("$"); 
    } 
}); 

function validateNumeric(evt) { 
    var theEvent = evt || window.event; 
    var key = theEvent.keyCode || theEvent.which; 
    if(key == 8) { 
     return true; 
    } 
    key = String.fromCharCode(key); 
    var regex = /[0-9]/; 
    if(!regex.test(key)) { 
     theEvent.returnValue = false; 
     theEvent.preventDefault(); 
    } 
} 

測試標記:

<form> 
    <input type="text" id="total" value="$"/> 
    <input type="hidden" id="hidden"/> 
    <input type="submit" value="Submit"/> 
</form> 
+0

但是,當用戶在字段中輸入一些文本時,如何顯示字符? – Thomas 2010-04-04 12:38:48

+0

作品,感謝這個 - – Thomas 2010-04-04 13:00:27

1

如果$總會在那裏,那麼如何把放在之前的文本字段呢?

個人而言,我避免將多餘的東西(單位,水印,whatnot)插入到像瘟疫這樣的文本字段的值中。他們總是最終被解釋爲實際內容的方式,他們不應該。

+0

其中一人 '必須有' 的要求,第e客戶端,一旦用戶點擊文本輸入,$就出現在字段中。我知道它完全堅果。 – Thomas 2010-04-04 12:28:54

+0

另外還有一個表單的另一部分,客戶希望將'sq.feet'附加到用戶輸入的末尾。 – Thomas 2010-04-04 12:30:45

+0

給你的客戶一些感覺。告訴他,這與字段標籤僅在被點擊時纔會出現相同,這是神祕肉類導航的惡意變體(http://en.wikipedia.org/wiki/Mystery_meat_navigation) – 2010-04-04 12:34:11