这是我第一次尝试使用ajax链接网页表单中的选择框,我显然遗漏了一些东西。我完全不知道那是什么。这是我的问题:
用户从一个选择框中选择一个国家/地区,并发出ajax请求,并将选项(包含州和地区的名称)返回到下面的选择框。 当选项返回到表单选择字段时,在提交表单时不会发送用户选择的选项。
以下是我编写的代码:
<script type="text/javascript">
jQuery(document).ready(function($){
$("select#state").attr("disabled","disabled");
$("select#country").change(function(){
$("select#state").attr("disabled","disabled");
$("select#state").html("<option>Loading States...</option>");
var id = $("select#country option:selected").attr('value');
$.post("http://example.com/terms.php", {id:id}, function(data){
$("select#state").removeAttr("disabled");
$("select#state").html(data);
});
});
});
</script>
您可以在此处查看实时示例(请参阅“国家/州”部分):
有什么想法让这个有用吗?
答案 0 :(得分:0)
据我所知,用户输入已发送
input_32 79
input_29 alberta
成为国家加拿大和 alberta 州。
<select tabindex="11" class="medium gfield_select" id="input_1_32" name="input_32"></select>
<select tabindex="12" class="medium gfield_select" id="input_1_29" name="input_29" disabled=""></select>
也许我误解了这个问题?
答案 1 :(得分:0)
尝试.live(eventType,handler)
说明:为现在和将来与当前选择器匹配的所有元素附加事件处理程序。
添加到您的代码并尝试〜
$('select#state').live('change', function() {
var id = $("select#state option:selected").attr('value');
alert(id);
});
或试试这个:
添加隐藏的表单:
<input type="hidden" id="hiddenValue">
改变您的选择#状态,如下所示:
<select onchange='innerValue(this.options[this.options.selectedIndex].value)'></select>
并创建一个javascript函数
function innerValue(value){
$("#hiddenValue").val(value)
}
然后,点击提交按钮,您需要$("#hiddenValue").val()
$("#submitbutton").click(function(){
alert($("#hiddenValue").val())
})
但是,我认为这不是最好的解决方案......