我在wordpress页面中有一个Contact 7表单,当表单再次打开时会自动获取最后填充的输入,这也适用于下拉列表。
现在在我的情况下,我有一个自动加载数据的下拉列表(这就是问题),因为当我的下拉选择值被更改时,它有一个事件处理程序来处理其他几个任务。在使用.ready()
处理程序加载页面后调用事件时,它显示第一个索引。但在此之后,所选索引将保留到先前选定的值(表单中的值先前已提交)。
我不知道这是怎么回事,因为事件触发器不起作用。但是当我手动更改下拉菜单时,它正在运行。
这是我的jQuery代码:
var $j = jQuery.noConflict();
$j(function(){
$j("select").val("Can you fix this?");
$j( "select" )
.change(function () {
var str = "";
$j( "select option:selected" ).each(function() {
str += $j(this).text() + " ";
});
alert(str.substring(5)); //the str mysteriously prefixes with 'Menu ' so I did this.
})
.change();
});
因此,当页面加载时,我将获得下拉列表{0}的第0个索引。但在那之后,正如我所说,在最后一次表单保存期间保存的值将保留,而不会触发事件。
我的选择短代码<select>
答案 0 :(得分:0)
这是因为表单设置的cookie。 Cookie名称将为inbound_<field name>
。在这种情况下,它是inbound_question-201
。
作为临时解决方法,可以在自动完成脚本开始工作之前删除此cookie。因此,将javascript代码更改为
var $j = jQuery.noConflict();
$j(function(){
document.cookie = "inbound_question-201=; expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/"; //this is the trick
$j( "select" )
.change(function () {
var str = "";
$j( "select option:selected" ).each(function() {
str += $j(this).text() + " ";
});
alert(str.substring(5));
})
.change();
});