朋友我在onblur
上分配给<input type="text" name="rate" />
事件的javascript函数中有以下代码。 #NewOrder
是div,input[name=quantity]
也是input type="text"
。这两个输入元素都在#NewOrder
div。
function addMaterial() {
var qnty, rate;
if (Number($('#NewOrder input[name=quantity]').val()) > 0) {
qnty = Number($('#NewOrder input[name=quantity]').val())
}
else {
alert('Invalid Quantity');
$('#NewOrder input[name=quantity]').focus(); // ** Working
return;
}
if ($('#NewOrder input[name=rate]').val().length == 0) {
rate = 0;
}
else {
if (!Number($('#NewOrder input[name=rate]').val() > 0)) {
alert('Invaid Rate'); // ** Working
alert($('#NewOrder input[name="rate"]').val()); // ** Working
$('#NewOrder input[name="rate"]').focus(); // ** Not Working
$('#NewOrder input[name="rate"]').trigger('focus'); // Also not Works
return;
}
else
rate = Number($('#NewOrder input[name=rate]').val());
}
var mat = getMaterialFromArray($('#mats').find(':selected').text());
$('#mats').focus();
}
我出错的朋友..?我错过了什么.. ??
这让我很恼火
虽然alert($('#NewOrder input[name="rate"]').val());
表示实际值,但意味着使用jQuery选择控制
但$('#NewOrder input[name="rate"]').focus();
和$('#NewOrder input[name="rate"]').trigger('focus');
都不起作用。
添加了实时版本链接
尝试访问http://a.bobdn.com使用'111'作为投资者编号,使用'abc'作为密码。然后导航到Material - &gt;新订单和pleeease看起来有什么问题。
答案 0 :(得分:2)
Firefox中似乎是错误。在Chrome中,您的代码正常运行 要获得Firefox支持,您可以创建如下函数:
function setFocus(controlSelectorString) {
setTimeout(function() {
$(controlSelectorString).focus();
}, 0);
}
答案 1 :(得分:0)
我认为你在该函数的最后一行调用焦点,并且每次调用该函数时都会调用它,这会覆盖你的函数 文本框的重点。
$('#mats').focus();
答案 2 :(得分:-1)
我已检查过您的code并注意到您有两个同名的文本框='Rate'。我认为这是问题所在。请更改名称并尝试一次。