Javascript 在jQuery不在Firefox中工作的情况下更改div值
我有一个屏蔽输入,我正在尝试建立,它在Chrome中运行良好,只有在firefox中它不会用新值更新我的文本字段 我也没有收到任何控制台错误,因此我不确定问题可能是什么Javascript 在jQuery不在Firefox中工作的情况下更改div值,javascript,jquery,html,Javascript,Jquery,Html,我有一个屏蔽输入,我正在尝试建立,它在Chrome中运行良好,只有在firefox中它不会用新值更新我的文本字段 我也没有收到任何控制台错误,因此我不确定问题可能是什么 $('.new-Btn').bind("click", function () { $('.html-btn').click(); }); $('.html-btn').change(function () { var newval
$('.new-Btn').bind("click", function () {
$('.html-btn').click();
});
$('.html-btn').change(function () {
var newval = $('.html-btn').val();
var nvstr = newval.substring(12, 25);
$('.new-Btn').html(nvstr);
});
u shd使用:
$('.new-Btn').bind("click", function () {
$('.html-btn').trigger('click');
});
$('.html-btn').change(function () {
var newval = $('.html-btn').val();
var nvstr = newval.substring(12, 25);
$('.new-Btn').html(nvstr);
});
我看到的是,在Firefox24下,您的div文本发生了变化。检查您的
substring()
函数与您正在测试它的文件一起返回的内容。因为我的问题是fakepathprefix,所以我使用了一个if语句,以根据浏览器的不同来调用不同的函数
if (/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) {
$('.new-Btn').bind("click", function () {
$('.html-btn').trigger('click');
});
$('.html-btn').change(function () {
var newval = $('.html-btn').val();
var nvstr = newval.substring(12, 25);
$('.new-Btn').html(nvstr);
});
} else {
$('.new-Btn').bind("click", function () {
$('.html-btn').trigger('click');
});
$('.html-btn').change(function () {
var newval = $('.html-btn').val();
$('.new-Btn').html(newval);
});
}
问题在于浏览器代理。有些浏览器显示完整路径名(chrome、opera、explorer),而有些浏览器不显示完整路径名(mozilla) 代码如下:
var nvstr;
var newval;
$('.html-btn').on('change',function () {
newval = $('.html-btn').val();
if(!$.browser.mozilla){
nvstr = newval.substring(12, 25);
$('.new-Btn').html(nvstr);
}else{
alert(11)
$('.new-Btn').html(newval);
}
});
下面是一个工作演示:
在所有浏览器中都经过测试,可以正常工作。前12个字符被删除,如果文件名短于12个字符,您将一无所获。。。问题是ff没有添加chrome使用的前缀。如果在Firefox中取消子字符串操作,一切正常,而在chrome中,它会显示要取消的前缀。不知道是否有非定制解决方案谢谢@Bernhard-这是为了对付chrome fakepath,有没有其他方法可以防止这种情况发生?啊,我现在看到@Konstantin了,我添加了它来删除“fakepath”