作者cluclu (ㄚ噜)
看板Ajax
标题[问题]一个js的写法 firefox ok IE8上却会出错
时间Wed Sep 5 09:45:08 2012
首先要先说明一下我对javascript与jQuery都是非常非常*n新手 只是copy公司前辈
的程式码来用与修改 所以先说明一下这些程式码的目的
目的 : 在html做出来的一个下拉式选单里 若是选中了其中一个选项 (信用卡)
此时画面中会跑出信用卡卡号、有效日期等等的 input 栏位
若是选了别的选项,这些栏位则不会显示出来,程式码如下
html部分
/////////////////////////////////////////////////////////////////////
<span id='credit'>
信用卡号:
<input type='text' name='credid' id='credid' value='<?=$credid?>' size='20' maxlength='19' /></br>
信用卡有效日期:
<select id='expiry_year' name='expiry_year' onchange='update_expiry()'><?=select_expiry_year();?></select>年
<select id='expiry_mon' name='expiry_mon' onchange='update_expiry()'>
<?=select_expiry_mon()?></select>月
</span>
javascript部分
/////////////////////////////////////////////////////////////////////
<script type='text/javascript'>
function show_credit(obj){
credit = document.getElementById('credit');
if(obj.value == '信用卡'){
credit.style.display = 'inline';
}
else{
credit.style.display = 'none';
}
}
var tooltip = new Array();
$(document).ready(show_credit(document.getElementById('billac_type')));
jQuery(function($){
$("#credid").mask("9999-9999-9999-9999",{completed:function(){alert("信用卡号格式不符: "+this.val());}});
$("
#credit_date").mask("99/99",{completed:function(){alert("信用卡有效日期不符: "+this.val());}}) ;
});
</script>
/////////////////////////////////////////////////////////////////////
IE8 左下角 错误三角型 出现的错误讯息是
网页错误详细资料
使用者代理程式: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
时间戳记: Wed, 5 Sep 2012 01:24:13 UTC
讯息: 物件不支援此属性或方法
行: 361
字元: 4
程式码: 0
URI:
http://localhost/WEBERP/000werp/store/index.php?act=shopcar
然後361行 我看网页的原始码 就是
credit = document.getElementById('credit');
这边开始
不知道该怎麽修正这个错误?
又或者是有另外可以达成同样目的的程式写法,有范例可以给我参考
谢谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.241.217
1F:推 musie:应该是.mask没有定义..这个jQuery lib有载入吗? 09/05 09:51
2F:→ cluclu:这个应该不是mask那边的问题 那个应该是给input栏位 09/05 10:06
3F:→ cluclu:限制几个可输入数字用的 09/05 10:07
重新补充一下
有问题的地方在於
使用Firefox浏览器时 可以正确的 在选到信用卡这个选项时
那两个相关的input text栏位才会显示出来 (信用卡卡号与日期)
若选择其他的选项 那两个input text栏位则会隐藏
使用IE8浏览器时 一开始就会显示出那两个 input 栏位
然後不管选其他的选项 这两个都不会隐藏
※ 编辑: cluclu 来自: 60.248.241.217 (09/05 10:10)
4F:→ kerash:IE->F12->指令码->F5 09/05 12:16
5F:→ nenpow:html 有加<!doctype html>吗 09/05 16:39
6F:→ NOXI:credit没有宣告 09/10 06:59