我在javascript中创建了一个代码来帮助我管理我的页面,但它似乎在IE和Safari中有一些问题,它在firefox中运行得很好,就像平常一样,但在其他浏览器中无效。 函数切换是选择所有visisle复选框,发送短信将捕获复选框的所有值并转到另一个链接,过滤表将有助于过滤表格中的内容。
<script type="text/javascript">
function toggle() {
var checkboxes = document.getElementsByName('parasms');
for each(var checkbox in checkboxes)
checkbox.checked = true;
}
function toggle2() {
var checkboxes = document.getElementsByName('parasms');
for each(var checkbox in checkboxes)
checkbox.checked = false;
}
function sendsms()
{
var counter = 0,
i = 0,
url = '',
input_obj = document.getElementsByTagName('input');
for (i = 0; i < input_obj.length; i++) {
if (input_obj[i].type === 'checkbox' && input_obj[i].checked === true) {
counter++;
url = url + ', ' + input_obj[i].value;
}
}
if (counter > 0) {
url = url.substr(1);
window.location.href = 'enviarsms.php?num=' + url;
}
}
function clean()
{
document.getElementById('empresa').value="";
document.getElementById('numero').value="";
document.getElementById('utilizador').value="";
document.getElementById('pontos').value="";
document.getElementById('movel').value="";
document.getElementById('actividade').value="";
document.getElementById('email').value="";
}
function filtertable(idElm)
{
var empresa=document.getElementById('empresa').value;
var numero=document.getElementById('numero').value;
var utilizador=document.getElementById('utilizador').value;
var localidade=document.getElementById('localidade').value;
var pontos=document.getElementById('pontos').value;
var movel=document.getElementById('movel').value;
var actividade=document.getElementById('actividade').value;
var email=document.getElementById('email').value;
if (empresa=="" && numero==""&& utilizador=="" && localidade=="" && movel=="" && actividade=="" && email=="" && pontos=="")
{
window.location = "../index.php";
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById('tbl1').innerHTML=xmlhttp.responseText;
document.getElementById(idElm).focus();
document.getElementById('empresa').value=empresa;
document.getElementById('numero').value=numero;
document.getElementById('utilizador').value=utilizador;
document.getElementById('localidade').value=localidade;
document.getElementById('pontos').value=pontos;
document.getElementById('movel').value=movel;
document.getElementById('actividade').value=actividade;
document.getElementById('email').value=email;
return;
}
}
xmlhttp.open("GET","filtertable.php?empresa="+empresa+"&&numero="+numero+"&&utilizador="+utilizador+"&&localidade="+localidade+"&&pontos="+pontos+"&&movel="+movel+"&&actividade="+actividade+"&&email="+email+"&&random=" + Math.random(), true);
xmlhttp.send();
}
</script>
<table width="2000" border="0" cellspacing="2" cellpadding="2" align="center" id="tbl1" name="representantes" class="table1">
<tr><td colspan="9"><a href="inserirrepresentante.php">Inserir Representante</a> | <a href="#" onclick="sendsms()">Enviar SMS</a> | <a href="#" onclick="toggle();">Seleccionar tudo</a> | <a href="#" onclick="toggle2();">Desselecionar</a></td></tr>
<tr style="background-color: grey;color:white;text-align: center;"><th style="text-align:center;">Acções</th><th>Empresa</th><th style="text-align:center;">Numero</th><th style="text-align:center;">Utilizador</th><th style="text-align:center;">Localidade</th><th style="text-align:center;">Pontos</th><th style="text-align:center;">Telefone Movel</th><th style="text-align:center;">Actividade</th><th style="text-align:center;width: 160px; max-width: 160px;overflow-x: hidden;">Email</th></tr>
<tr>
<th></th>
<th><input size="45" type="text" id="empresa" onkeyup="filtertable('empresa')" style="border:1px dashed black;"/></th>
<th><input size="10" type="text" id="numero" onkeyup="filtertable('numero')" style="border:1px dashed black;" /></th>
<th><input size="25" type="text" id="utilizador" onkeyup="filtertable('utilizador')" style="border:1px dashed black;" /></th>
<th><input size="15" type="text" id="localidade" onkeyup="filtertable('localidade')" style="border:1px dashed black;" /></th>
<th><input size="10" type="text" id="pontos" onkeyup="filtertable('pontos')" style="border:1px dashed black;" /></th>
<th><input size="20" type="text" id="movel" onkeyup="filtertable('movel')" style="border:1px dashed black;"/></th>
<th><input size="30" type="text" id="actividade" onkeyup="filtertable('actividade')" style="border:1px dashed black;" /></th>
<th><input size="50" type="text" id="email" onkeyup="filtertable('email')" style="border:1px dashed black;" /></th>
</tr>
这一切都不起作用firefox.In Internet Explorer我在所有这些中得到错误我得到这个错误:
is not defined or is null.
过滤表中的错误已打开:
document.getElementById('tbl1').innerHTML=xmlhttp.responseText;
根据IE,并且在切换时我在
中调用函数时出现错误onkeyup="filtertable('empresa')"
有人可以向我解释为什么会这样吗?
答案 0 :(得分:2)
这是人们使用像jQuery这样的JavaScript框架的主要原因。
.getElementsByname等基本功能,对于每个,checkbox.checked在这些框架中进行了规范化,以实现跨浏览器兼容性。