是(焦点)是aproach。最终代码如下:
setInterval(function(){
if($j("SELECT[name='cf20_field_7']").is(":focus")) return false;
var information = '';
var i = 1;
$j("#cf20_field_1").html();
//add new information to hidden field
$j("#cforms20form .info_for_email").each(function(){
var name = $j(this).find("INPUT[name='cf20_field_5']").val();
var inn = $j(this).find("INPUT[name='cf20_field_6']").val();
var view = $j(this).find("SELECT[name='cf20_field_7']").val();
//render
information += i + ")";
information += "Наименование организации: " + name + ".<br/>\n";
information += "Реквизиты организации: " + inn + ".<br/>\n";
information += "Стоимость заказа: выписка " + view + ".<br/>\n";
i++;
})
$j("#cf20_field_1").html(information);
hovered = true;
}
,100
);
当SELECT字段中没有悬停时,是否有可能触发功能。
还有一些方法可以检查SELECT字段是否有悬停。
它导致问题。当您尝试选择另一个选项时,光标在setInterval工作时正在进行。
我找到的最佳方法如下:
//every 100 mil secconds update info
setInterval(function(){
$j("SELECT[name='cf20_field_7']").trigger('change');
if ( $j("SELECT[name='cf20_field_7']").on("change")) return false;
var information = '';
var i = 1;
$j("#cf20_field_1").html();
//add new information to hidden field
$j("#cforms20form .info_for_email").each(function(){
var name = $j(this).find("INPUT[name='cf20_field_5']").val();
var inn = $j(this).find("INPUT[name='cf20_field_6']").val();
var view = $j(this).find("SELECT[name='cf20_field_7']").attr("value");
//render
information += i + ")";
information += "Наименование организации: " + name + ".<br/>\n";
information += "Реквизиты организации: " + inn + ".<br/>\n";
information += "Стоимость заказа: выписка " + view + ".<br/>\n";
i++;
})
$j("#cf20_field_1").html(information);
}
,100
);
更多信息: 我可以更多地描述情况。所以我有一张表格。 onsubmit事件没有工作,因为还有另一个事件是attachet。所以我希望每100毫秒更新一次表格的价值。该值包含所有动态创建的“选择和输入”。但是当我尝试通过鼠标更改选择的值时。该函数被触发并且函数检查选择值并导致鼠标乞讨。因此,我需要以某种方式检查是否悬停了该选择以防止触发该功能。
答案 0 :(得分:2)
if ( SELECT[name='cf20_field_7'].on("change"))
我想你需要这个:
if ( $("SELECT[name='cf20_field_7']").on("change"))
但是,上述情况仍无效。你需要一些处理程序,如:
$("SELECT[name='cf20_field_7']").on("change", function(){
return false;
});
答案 1 :(得分:0)
if ($j("SELECT[name='cf20_field_7']").on("change")) return false
不清楚这里应该检查什么。我假设你想运行一些附加到onchange甚至select的函数。在这种情况下,您应该使用.trigger
而不是.on
。但在这两种情况下,返回值都是jquery对象(用于链接目的)所以基本上你的语句将始终都是真的trigger
和on
如果你想测试一些select值,你应该做点什么像下一个:
if(someTestFunct($j("SELECT[name='cf20_field_7']"))) return false;
function someTestFunct(jObj) {
//some other code?
return jObj.val() == "some value to test";
}
可能会使用一些更好的方法,但没有更多细节,很难提出一些建议。