Javascript ajaxpost之前的jQuery对话框
我有一个表单和一个jQuery函数,如果用户更改html选择字段,就会触发该函数。该函数收集所需的所有信息,并通过ajax post发布到php脚本。 我想用一个新功能扩展这个函数:如果所选值等于预定义值,我想显示一个带有两个按钮的对话框。用户需要点击其中一个按钮,如果他点击了,新的信息将附加到帖子上。 一个简单的例子: 选择有3个选项: -柠檬 -香蕉 -苹果 如果用户选择lemon或banana,脚本将信息发送到服务器,而无需进一步操作。但如果他选择苹果,我需要一个额外的对话框,因为我想问他是需要一个红色的还是绿色的。它需要附加到我要发送到服务器的信息中 你们能帮我吗,伙计们,我该怎么做 我只有第一部分:Javascript ajaxpost之前的jQuery对话框,javascript,php,jquery,ajax,dialog,Javascript,Php,Jquery,Ajax,Dialog,我有一个表单和一个jQuery函数,如果用户更改html选择字段,就会触发该函数。该函数收集所需的所有信息,并通过ajax post发布到php脚本。 我想用一个新功能扩展这个函数:如果所选值等于预定义值,我想显示一个带有两个按钮的对话框。用户需要点击其中一个按钮,如果他点击了,新的信息将附加到帖子上。 一个简单的例子: 选择有3个选项: -柠檬 -香蕉 -苹果 如果用户选择lemon或banana,脚本将信息发送到服务器,而无需进一步操作。但如果他选择苹果,我需要一个额外的对话框,因为我想问他
$('select.myList').change( function()
{
var e = $(this)
var val = $(this).val();
var id = $(this).attr('data-id')
var url = 'index.php?process'
$.ajax({
type: "POST",
url: url,
data: { id: id, val: val },
success: function(data){
var o = $.parseJSON(data);
if( o.error )
{
console.log('error:' + o.message);
} else
{
console.log('success:' + o.message);
}
return false;
}
})
return false
})
首先,我要说的是,你应该非常小心你的变量名。如果可以避免的话,千万不要将
e
用作变量。我还将更改id
和val
在任何情况下,您都应该能够在ajax:中使用beforeSend
属性,因此假设“apple”是元素的val
:
$.ajax({
type: "POST",
url: url,
data: { id: id, val: val },
beforeSend: function() {
if (val === 'Apple') {
//do stuff
}
},
// rest of ajax call
}
你能发布一些你尝试过的代码吗?我只有第一部分,更新了问题很好,我以前没有注意到在API中发送。你能帮我做一下对话吗/我想我会问一个明显的问题——与其在发送之前尝试操作数据,还有什么原因不能将“苹果绿”和“苹果红”添加到选择列表中?在选择更改时提交表单,然后停下来询问更多信息,这感觉有点笨拙。最终,我认为我建议的解决方案是将值修改为其中之一,因此,如果这是您需要的信息,为什么不从它们开始呢?这只是一个简单的例子,真正的东西要复杂得多:)我明白了-我想问题仍然存在,为什么不首先将选项添加到选择列表中,或者展开表单,单击按钮提交,并添加一个字段,如果用户选择apple,该字段将显示?如果你能用一个真实的例子建立一个代码笔,那将是非常有帮助的。