我有两个输入字段。第一个是用户以任何文本(例如产品名称)写入的字段,另一个是产品名称的“别名”字段,当用户写入产品名称时,它是实时自动编辑的。它是用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节省了我很多时间。我的网站是针对俄罗斯的,它也可以翻译成俄文和英文字母。
那么请问我如何为别名制作一个随机代码?
提前致谢!
答案 0 :(得分:0)
下划线库具有用于此目的的功能。我强烈推荐这个库,但是如果你只想要一个函数的逻辑,它基本上只是:
var idCounter = 0;
function uniqueId(prefix) {
var id = idCounter++;
return prefix ? prefix + id : id;
};
你可以这样做:
var aliasOfFoo = uniqueId(originalFoo);
现在,如果您需要后缀是随机的,那么事情会变得有点棘手。你需要一个idArray来存储所有以前生成的随机字符串,然后在uniqueId中,你需要继续生成随机字符串,直到找到一个不在idArray中的字符串。
而不是idCounter。