我正在使用一个将使用ajax提交的功能,而无需点击按钮。但我目前正在经历两个问题,经过反复试验没有找到合理的解决方案:
首先,有什么方法可以禁用输入按钮点击(这会导致整个页面刷新)?
JSFIDDLE JS函数的基本示例
其次,感觉就像我要以迂回的方式显示已发布的内容。如何更改函数$('#special').html('<p>' + $('#resultval', result).html() + '</p>');
的这一部分,使其仅在名为#special
的div中进行POST,而不需要span or <p> #resultval
?
每次我通过php回显我必须像这样设置它来显示结果:<div id="special"><span id="resultval">This is the result.</span></div>
<script>
$(document).ready(function() {
var timer = null;
var dataString;
function submitForm(){
$.ajax({ type: "POST",
url: "posting.php",
data: dataString,
success: function(result){
$('#special').html('<p>' + $('#resultval', result).html() + '</p>');
}
});
return false;
}
$('#ytinput').on('keyup', function() {
clearTimeout(timer);
timer = setTimeout(submitForm, 050);
var name = $("#ytinput").val();
dataString = 'name='+ name;
});
});
</script>
答案 0 :(得分:1)
$(document).ready(function() {
var timer = null;
var dataString;
function submitForm(event){// the function call on click or on submit onclick=submitForm(event);
event.preventDefault(); //to prevent enter key
$.ajax({ type: "POST",
url: "posting.php",
data: dataString,
success: function(result){
$('#special').text(result); //you can use text() or html() only
}
});
return false;
}
$('#ytinput').on('keyup', function() {
clearTimeout(timer);
timer = setTimeout(submitForm, 050);
var name = $("#ytinput").val();
dataString = 'name='+ name;
});
});