请不要判断我的JS技能,我是初学者。 =))
所以我有一个注册用户的函数,但我想制作“create_sample_user”按钮来填充一些数据的文本字段。通过这种方式,人们可以快速查看网站,无需输入姓名,电子邮件等等......
但问题是:当我输入用户名和我自己的所有其他字段时,注册按钮工作正常。但是当我用“create_sample_user”按钮填充它们时,我认为它不会“看到'文本字段的值”。
function create_sample_user() {
var button = $("#create-sample-user");
button.click(function() {
var ranNum = 1 + Math.floor(Math.random() * 100);
var uname = 'Sample_'+ranNum;
$("#id_username").val(uname);
$("#id_email").val(uname+'@'+uname+'.com');
$("#id_password").val(uname);
$("#id_password2").val(uname);
});
}
function register_user() {
$("#register-user").click(function() {
$.ajax({
url: "/registration/register_user/",
type: "POST",
dataType: "text",
data: {
username : $("#id_username").val(),
email : $("#id_email").val(),
password : $("#id_password").val(),
password2 : $("#id_password2").val(),
},
success: function(data) {
parsed_data = $.parseJSON(data);
if (data) {
alert("User was created");
window.location = parsed_data.link;
}
else {
alert("Error");
}
}
});
});
}
由于这行代码中的一个字符,整件事情无效:
`var uname = 'Sample_'+ranNum;`
由于某种原因,_
字符是问题,而AJAX不想接受它。
换句话说:
var uname = 'Sample'+ranNum;
这一行可以解决问题:=)
答案 0 :(得分:2)
好的,用这个替换你的create_sample_user()
方法:
$(document).ready(function() {
var button = $("#create-sample-user");
button.click(function() {
var ranNum = 1 + Math.floor(Math.random() * 100);
var uname = 'Sample_'+ranNum;
$("#id_username").val(uname);
$("#id_email").val(uname+'@'+uname+'.com');
$("#id_password").val(uname);
$("#id_password2").val(uname);
});
});
另外,请尝试删除function register_user()
函数包装器。
这应该这样做。它也应该弹出成功警报框(我更改了你的AJAX URL以使用jsFiddle的AJAX echo): http://jsfiddle.net/MQ6Cq/4/
更新(自从您发布了代码 - 我会在发现错误时更新此代码):
$(document).ready()
来电 - 删除第一个(已编辑)function register_user() {
和右括号
我对我之前的小提琴做了一个小小的更新,以防它有助于测试,并将请求类型更改为“GET”。打开浏览器的控制台(F12),右键单击并打开XMLHttpRequests的日志记录。然后运行它,您将看到AJAX正在成功传输数据。我不知道你的其他东西有什么问题,但我没有服务器,我可以测试它,我没有得到足够的反馈,知道你尝试每个建议后发生了什么(或者即使你'重新尝试他们)。我希望这可以帮助您解决问题。
祝你好运! :)答案 1 :(得分:1)
您的代码应该有效。 Here's a jsfiddle(简化版)
如果您查看控制台,您会看到数据格式正确。
我在代码中唯一看到的是没有调用create_sample_user(),因此click事件不会应用于按钮。但我想你只是忽略了把它放在问题中
create_sample_user();
$('#register-user').click(register_user);
function create_sample_user() {
var button = $("#create-sample-user");
button.click(function() {
var ranNum = 1 + Math.floor(Math.random() * 100);
var uname = $("#id_username").val('Sample_'+ranNum);
$("#id_email").val(uname.val()+'@'+uname.val()+'.com');
$("#id_password").val(uname.val());
$("#id_password2").val(uname.val());
});
}
function register_user() {
data = {
username : $("#id_username").val(),
email : $("#id_email").val(),
password : $("#id_password").val(),
password2 : $("#id_password2").val(),
}
console.log(data);
}
答案 2 :(得分:0)
$("#create-sample-user").click(create_sample_user);
$('#register-user').click(register_user);
function create_sample_user() {
var ranNum = 1 + Math.floor(Math.random() * 100);
var uname = $("#id_username").val('Sample_' + ranNum);
$("#id_email").val(uname.val() + '@' + uname.val() + '.com');
$("#id_password").val(uname.val());
$("#id_password2").val(uname.val());
}
function register_user() {
data = {
username: $("#id_username").val(),
email: $("#id_email").val(),
password: $("#id_password").val(),
password2: $("#id_password2").val(),
}
console.log(data);
}