0

次のフォームフィールドがあります。

<label for="user_email"><?php _e('Your Email'); ?>: </label>
<input type="text" name="user_email" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" id="user_email" class="required email" tabindex="102" />

<label for="user_login"><?php _e('Username'); ?>: </label>
<input type="text" name="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" id="user_login" tabindex="101" class="required" />

user_loginフィールドをuser_emailへの入力からリアルタイムで入力し(焦点が合っていない場合は、そうでない場合は文字ごとに)、@記号の前で停止して、ユーザーが「example@example.com」と入力するようにする方法はありますか? 「user_emailフィールドに、user_loginフィールドに「example」が自動的に入力されますか?

最終的にユーザー名フィールドを非表示に設定したいのですが、最初に目に見える形で機能するかどうかを確認したいと思います。

4

2 に答える 2

0

はい、キー イベントをリッスンし、次のように他のフィールドに値を設定できます。

$('#user_email').keyup(function(){
    var email = $('#user_email').val();
    var index = email.indexOf('@');
    var username = index >= 0 ? email.substring(0, index) : email;
   $('#user_login').val(username);     
});​

このフィドルを参照してください

この機能は、ユーザー名を提案するのに便利かもしれないと思いますが、ユーザーはそれを上書きできるはずです。たぶん、彼は別の名前を望んでいるか、その名前がす​​でに使用されています. それ以外の場合は、たとえば facebook のようなユーザー名でメール アドレス全体を使用することもできます。

また、ユーザー名フィールドを非表示にする場合は、そのままにして、PHP を使用してサーバー側の電子メール アドレスからユーザー名を取得できます。ユーザーは、ブラウザーに含まれるツールを使用してページを操作するだけで、他の値を送信できることを覚えておいてください。または、JavaScript が無効になっていて、フィールドが空白になっている可能性があります。

一言で言えば、フィールドをどのようにしてユーザーに使用させるか、完全に削除する必要があります。

于 2012-08-15T10:38:46.560 に答える
0

必要に応じて、キーアップまたはその他の関連アクションでこれを起動します。

$('#user_login').val($('#user_email').val().split('@')[0]);

変更を可能にする必要があります。

設定:

var userNoEdit = true;

メールのイベント変更時:

if(userNoEdit){
  $('#user_login').val($('#user_email').val().split('@')[0]);
}

ユーザー名のイベント MANUAL 変更時:

userNoEdit = false;
于 2012-08-15T10:39:06.200 に答える