渡されるvalの未定義を取得し続けますが、フォームフィールドに何かが入力されている理由がわかりません。
$('#addNewUserForm input[name="username"]').rules('add', {
remote: {
type: 'post',
url: 'addnewuser/is_username_available',
data: {
'username': function() { return $('#username').val(); }
},
dataType: 'json'
}
});