.keyup 方法的过滤值 JQuery

Filter value on .keyup method JQuery

我有两个字段(用户名和电子邮件),我想用电子邮件字段的内容自动填充用户名,因为用户名是隐藏输入。

我只需要@domain.com之前的内容。现在我正在使用 .keyup(),但我也可以使用 .change()

如何只能获取@domain.com之前的内容?

$('#id_email').keyup(function () {
    $('#id_username').val($(this).val());
});

编辑: 所有答案都完美无缺,非常感谢。

试试这个

$('#id_email').keyup(function () {
    var usr = $(this).val();
    var usr = usr.split('@');
    $('#id_username').val(usr[0]);
});

查看拆分的工作原理: http://www.w3schools.com/jsref/jsref_split.asp

有点简单但是你能做类似的事情吗

var 电子邮件 = "test@example.com"; var 用户名 = email.split('@')[0];

所以:

<script>
    $('#id_email').change(function () {
        var email = $(this).val();
        $('#id_username').val(email.split('@')[0]);
    });
</script>

它会起作用,但当然需要一个有效的电子邮件地址。

试试这个...

$('#id_email').keyup(function () {
    $('#id_username').val($(this).val().split('@')[0]);
});

答案的编辑版本,只是因为我相信 input 这种东西更好keyupchange,而且我们不需要存储任何 email 变量。

$('#id_email').on('input',function(){
   $('#id_username').val($(this).val().split('@')[0]);
});

勾选fiddle