我使用下面的脚本将一些变音标记从遗留标签替换为标准格式。在Firefox以外的所有浏览器中均可正常使用;它根本不起作用。我假设问题来自event.target,但我刚开始使用javascript而且缺乏修复此问题的方法。
为我的问题找到了这个(posible?)解决方案,但不知道如何为我的脚本调整它:event.target not working on Firefox
任何帮助将不胜感激!
function inlocuire_diacritice (form) {
var form = event.target;
var i, l;
for (i = 0, l = form.elements.length; i < l; i += 1) {
if (form.elements[i].type === 'text') {
form.elements[i].value = form.elements[i].value.replace(/Ş/g, 'Ș');
form.elements[i].value = form.elements[i].value.replace(/ş/g, 'ș');
form.elements[i].value = form.elements[i].value.replace(/Ţ/g, 'Ț');
form.elements[i].value = form.elements[i].value.replace(/ţ/g, 'ț');
}
}
return true;
}
编辑:我从另一个函数内部调用该函数:
function validate(form) {
//form validation script
inlocuire_diacritice (form);
}
这是在表单提交上调用的:
<form action="whatever" name="whatever" method="post" onsubmit="return validate(this)">
答案 0 :(得分:1)
试试这个:
<form action="whatever" name="whatever" method="post" onsubmit="return validate(event, this)">...</form>
功能:
function inlocuire_diacritice (ev, form) {
// form is a reference to the form element already
// if you need event.target, use ev.target
// this refers to the element to which this event is attached
:
}
实际上在FF(或任何现代浏览器)中,您不需要在调用函数时传递参数,在函数声明中您需要包含一个参数,表示event
。 eventhandler中的this
引用事件所附加的元素。
请阅读addEventListener
以了解听众应如何实际附加到元素。