如何:文本字段只接受某些单词

时间:2011-11-26 17:22:02

标签: php javascript forms

如何设置只接受某些字词的文字字段? 我有大约150个单词是允许的。 单词是这些的股票代码:ZLTU,ZTLAD,ZMASD ......

2 个答案:

答案 0 :(得分:2)

新的HTML5表单元素可以处理您需要的内容,但仍存在向后兼容性问题。

基本上,您可以通过监听onblur事件来测试输入字段的值,并更正,删除值,或者如果值不在集合中,则提醒用户。或者,您可以使用<select>元素“强制”用户从一组固定的值中进行选择。

答案 1 :(得分:1)

// You could create an object and validate that 
// the input string is in the object:
var tik={
    A:"Agilent Technologies",
    AAPL:"Apple Inc.",
    BAC:"Bank of America",
    'BRK.A':"Berkshire Hathaway (class A shares)",
    C:"Citigroup Inc.",
    CPRT:"Copart",
    GOOG:"Google",
    HNZ:"H.J. Heinz Company",
    HOG:"Harley-Davidson Inc.",
    HPQ:"Hewlett-Packard",
    INTC:"Intel",
    KO:"Coca-Cola Company",
    MMM:"3M Company",
    MSFT:"Microsoft",
    TGT:"Target Corporation",
    TXN:"Texas Instruments",
    WMT:"Wal-Mart",
    WAG:"Walgreens"
}
function validTicket(inp){
    return inp.value in tik
    //returns true or false
}
function stockCo(inp){
    return tik[inp.value];
    //returns company name or undefined
}

//examples
var input={value:'HNZ'};

//alert(validTicket(input)+'\n'+stockCo(input))


// Or list them all in a delimited string and look for indexOf.
// Remember to enclose the first and last items with your delimeter.
function validTick(inp){
    var tik= '|A|AAPL|BAC|BRK.A|C|CPRT|GOOG|HNZ|HOG|HPQ|INTC|KO|MMM|MSFT|TGT|TXN|WMT|WAG|';
    return tik.indexOf('|'+inp.value+'|')!= -1;
}
// alert(validTick(input))