希望这是有道理的....基本上我有一个表单,并希望获取“email”字段的输入并截断/修剪“@”符号之前的值,并将该值赋予另一个隐藏字段。< / p>
EDIT / ADDED:另外,如果可能在同一个函数中,自动生成并附加一个随机数(01到99之间就足够了)以确保没有“重复/匹配”隐藏字段“值,这将是很好的。 ..例如,如果电子邮件地址是像info@blahblah.com这样的非语言,如果已经在系统中,“info”可能会被阻止,但info46和info07就可以了。
如果添加到这样的问题是不合适的,我道歉并将其编辑出来,根据原始标准将问题标记为已回答,并打开一个有希望添加到此的新问题。
所以基本上如果有人输入“JohnSmith@hotmail.com”,“JohnSmith26”(作为示例)将被指定为另一个隐藏表格字段的值。
示例:
<label>Email Address:</label><input type="text" id="email" name="email" value="" size="30" maxlength="80"/>
<input type="hidden" id="hiddenfield" name="hiddenfield" value="truncated email" />
我看到了这个帖子,但我没有使用coldfusion等,我希望在表单中找到一种简单的方法:how do I trim an email input address so only the data before the @ is inputted into the database?
正在寻找使用javascript / jQuery将截断值分配给其他字段的最佳方法。
答案 0 :(得分:0)
首先split the email address
,然后使用regex to remove white spaces
,然后将其分配给隐藏字段。
var email = document.getElementById('email').value.split('@')[0],
hidden = document.getElementById('hiddenfield'),
trimmedValue = email.replace(/\s+/g, '');
hidden.value = trimmedValue ;
答案 1 :(得分:0)
你可能想要这样的东西
的Javascript
var email = document.getElementById("email"),
hidden = document.getElementById("hiddenfield");
function transferTruncated() {
var target = this,
name;
if (target.value.indexOf("@") !== -1) {
name = target.value.split("@")[0].trim();
if (name && name.search(/\s/) === -1) {
hidden.value = name;
} else {
hidden.value = "truncated email";
}
} else {
hidden.value = "truncated email";
}
}
email.addEventListener("change", transferTruncated, false);
上
注意:我从输入字段中删除了隐藏类型,以便您可以看到它,并且您可能希望在分配之前检查名称是否进一步有效。