0

希望这是有道理的....基本上我有一个表格,想要输入“电子邮件”字段并截断/修剪“@”符号之前的值并将该值提供给另一个隐藏字段。

编辑/添加:此外,如果可能在同一个函数中,自动生成并附加一个随机数(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等,我希望在表单中找到一种简单的方法来做类似的事情:如何修剪电子邮件输入地址,以便只有@之前的数据输入到数据库中?

我正在寻找使用 javascript/jQuery 将截断值分配给其他字段的最佳方法。

4

2 回答 2

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 ;
于 2013-06-17T22:04:22.867 回答
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);

jsfiddle 上

注意:我从输入字段中删除了隐藏类型,以便您可以看到它,并且您可能希望在分配之前检查该名称是否进一步有效。

于 2013-06-17T22:09:44.093 回答