在输入中添加带有javascript的随机代码

时间:2012-12-11 19:00:17

标签: php javascript jquery

我有两个输入字段。第一个是用户以任何文本(例如产品名称)写入的字段,另一个是产品名称的“别名”字段,当用户写入产品名称时,它是实时自动编辑的。它是用javascript完成的,所以我的问题是如何添加一些javascript代码,以便在每个ALIAS结束时添加一些随机代码,如(aSDAS55AD546)。

以下是代码:

输入字段:

产品名称:

<input id="asd" onKeyUp="keypress()" name="editname_<? echo $languages[$i][0]; ?>[<? echo $key; ?>]" type="text" value="<? echo $item['name'][$languages[$i][0]];?>" />

别名字段:

<input name="editalias[<? echo $key; ?>]" id="sdf" onFocus="javascript:stripspaces(this)" readonly="readonly" type="text" value="<? echo $item['alias'];?>" />

这是javascript代码:

<script type="text/javascript"> 

function keypress()
{ 
var txt=document.getElementById('asd').value;
str1 = " \",'!=:;\йцукенгшщзхъжэдлорпавыфячсмитьбюЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЯЧСМИТЬБЮăîșțĂÎȘȚ"; 
str2 = "00000000icukengsszhijedlorpavifacsmitibuICUKENGSSZHIEJDLORPAVIFACSMITIBUaistAIST";
for(i=0; i<str1.length; i++) 
   { 
 txt = txt.replace(new RegExp(str1[i],"g"), str2[i]); 
} 

document.getElementById('sdf').value=txt;
} 
</script> 


<script type="text/javascript">
$().ready(function(){
    $("input#asd").keyup(removeextra).blur(removeextra);
});
function removeextra() {
    var initVal = $(this).val();
    outputVal = initVal.replace(/[^0-9a-zA-Zа-яА-Я\s'",!ăîșțĂÎȘȚ]/g,"");       
    if (initVal != outputVal) {
        $(this).val(outputVal);
    }
};
</script>

这个javascript节省了我很多时间。我的网站是针对俄罗斯的,它也可以翻译成俄文和英文字母。

那么请问我如何为别名制作一个随机代码?

提前致谢!

1 个答案:

答案 0 :(得分:0)

下划线库具有用于此目的的功能。我强烈推荐这个库,但是如果你只想要一个函数的逻辑,它基本上只是:

var idCounter = 0;
function uniqueId(prefix) {
    var id = idCounter++;
    return prefix ? prefix + id : id;
};

你可以这样做:

var aliasOfFoo = uniqueId(originalFoo);

现在,如果您需要后缀是随机的,那么事情会变得有点棘手。你需要一个idArray来存储所有以前生成的随机字符串,然后在uniqueId中,你需要继续生成随机字符串,直到找到一个不在idArray中的字符串。

而不是idCounter。