我有这段代码:
<script>
$(document).ready(function() {
$("#edit-my-username").click(function() {
$("#my-username").html('<input type="text" id="new-username" value="<?php echo $my_username; ?>"> <button class="my-button small-btn" id="submit-my-username">Submit</button>');
});
$("#submit-my-username").click(function() {
var user = "<?php echo $userid; ?>";
var edit_field = "username";
var edit_content = $("#new-username").val();
if(edit_content !== ''){
$.ajax({
type: "POST",
url: "edit-user.php",
data: {user: user, field: edit_field, content: edit_content},
cache: false,
success: function(html){
$("#my-username").html(html);
}
});
}return false;
});
});
</script>
我无法弄清楚它为什么不提交。单击按钮时,Firebug看不到XHR。我对JS / jQ并不完全自信..我哪里错了?
答案 0 :(得分:1)
由于您动态添加#submit-my-username
,因此点击处理程序在页面加载时未绑定。
$("#submit-my-username").click(function() {
将点击处理程序更改为以下
$("body").on( "click", "#submit-my-username", function() {
答案 1 :(得分:0)
当您通过javascript添加html时,在您的情况下jquery,单击事件(以及任何其他触发事件)不起作用。 您必须使用 on 事件或 live 事件,但不推荐使用最后一个事件。
例如:
$("#submit-my-username").live('click'. function()
$("#submit-my-username").on('click', function()
答案 2 :(得分:0)
页面加载时,jquery ready funciton执行。部分&#39;提交&#39;不存在,所以&#39; $(&#34;#submit-my-username&#34;)。click(function(){}&#39;脚本不起作用。
我认为你应该在&#39;提交&#39;中添加onclick事件。明显。
如:
<button class="my-button small-btn" id="submit-my-username" onclick='func()'>Submit</button>
答案 3 :(得分:0)
在您的情况下,您应该使用.live()方法,但现在不推荐使用它。而不是你可以使用.on()
$("#my-username").on('click', '#submit-my-username', function(event) {}
答案 4 :(得分:-1)
很抱歉错误解释了您的问题。可以让用户使用jquery提交表单。
$("form").submit(function(){
//your code
});
希望这是你问题的答案。