我有一个带有一个选择框的表单,当单击提交按钮时需要将其输入到数据库中。
我遇到的问题:
如何在不刷新页面的情况下自动更新。那么,如果在数据库中添加了一个选择,它会自动显示在选择选项中吗?
更新代码
$(document).ready(function(){
$('#submitbut').click(function(e){
var updateid = $("#updateid").val();
if(updateid.length == 0){
$("#success").text("make a selection.");
$("updateid").focus();
}
else{
var dataString = 'updateid='+ updateid
$.ajax({
type:'POST',
url:'test.php',
data: {updateid:dataString}
}).done(function(){
$('#success').text('success!');
});
}
e.preventDefault();
});
});
答案 0 :(得分:1)
您的网页提交的原因是您遇到了一些语法错误。我将以随机顺序回答你的观点。
要修复验证问题,您应该检查是否有值。您检查了文本节点,而不是检查值。
您使用了
if(updateid == "--")
但<option>
代码的值为空。你应该改用它:
if(updateid.length == 0)
对于AJAX,我喜欢使用done()
函数。我为了演示目的简化了代码,但它看起来像这样:
$.ajax().done(function(){
$('#success').text('success!');
});
您还有2条回复虚假陈述,但对您没有帮助。阻止表单提交的正确方法是preventDefault(),你在下面做过,但是由于你的错误,它没有被调用。
另一件有用的事情是使用<input type="button">
。这样,表单永远不会提交。
Here is a demo of your code with working validation and AJAX
答案 1 :(得分:0)
也许使用$('#submitbut').attr('type', '');
默认情况下禁用该按钮并检查选择框的更改
$(&#39; #selectbox&#39;)。onChange(function(){ if($(this).val()!=&#39;&#39;) $(&#39;#submitbut&#39)。removeAttr(&#34;禁用&#34;&#34;禁用&#34); 其他 $(&#39;#submitbut&#39;)。attr(&#39;禁用&#39;,&#39;禁用&#39;); });
对getoptions.php进行ajax调用,从db中检索所有选项,并将它们与select中的选项进行比较。