关键是
1.校验 card_name,card_bc,card_page是否存在;这个比较难,先旁观!
1.校验 card_name,card_bc,card_page是否存在;这个比较难,先旁观!
解决方案 »
- 为什么取不到a元素
- script在IE6下没事;IE7下直接打开没事,到服务器上就不行了?
- 在XSL中执行execCommand的问题
- 没人会吗???急死了!!!在线等!!!
- 图片替换,全局变量的问题.谁能帮我解决。
- 请教各位高手,如何控制一个IE窗口一打开就最大化?对了,是和按下最大化按钮一样的效果,我的代码并没有达到这种效果。
- about event!!
- 如何为input绑定两个函数?
- 我的服务器安装了2000server,我要做到每天下班自动定时关闭服务器,请问如何做到,需要下载什么软件?
- 使大一个问题,请java高手指点,真的对我很难,但对你们就不一定了。来看一看吧,我在线等待。
- 感谢hbhbhbhbhb1021(天外水火(我要多努力)) 老师的热心帮助,请接分!
- 怎么把保存在数据库中的格式也显示出来?
<form name="form_card">
<input name="card_bc" />
<input name="card_page" />
<input name="card_name" />
<input type="button" onClick="compute('form_card', 'card_name.value=Math.pow((parseInt(card_bc.value)), 2)*100+Math.sqrt(parseInt(card_page.value))')" />
</form><script type="text/javascript">
var compute = function (a, b) {
if ((a = document.forms[a])) {
try {
with (a) {
card_name.value=Math.pow((parseInt(card_bc.value)), 2)*100+Math.sqrt(parseInt(card_page.value))
eval(b);
}
} catch(exp) {}
} else {
alert("err");
}
};
</script>
<script type="text/javascript">
var compute = function (a, b) {
if ((a = document.forms[a])) {
try {
with (a) {
eval(b);
}
} catch(exp) {}
}
};
</script>
楼主为什么向这里面钻啊,直接写
compute(form_card, "card_name.value=Math.pow((parseInt(card_bc.value)), 2)*100+Math.sqrt(parseInt(card_page.value))")
这样要简单很多
<input name="card_bc" />
<input name="card_page" />
<input name="card_name" />
因为我现在正在做程序生成器,如果能有这样的一个东西,我做起来就简单多了,不用我费力生成了
if(!document.getElementById(card_name))
{
alert("对象不存在")
}
"card_name.value=Math.pow((parseInt(card_bc.value)), 2)*100+Math.sqrt(parseInt(card_page.value))"这种形式也可以是
"card_name=Math.pow((parseInt(card_bc)), 2)*100+Math.sqrt(parseInt(card_page))"大家怎么方便怎么来,关键是要能通用
计算出我传入的这个式子,还能校验每一个对象是否存在
而且我写的那个支持式子变量不固定,但是模式必须要按照我那个来。否则你可以按照你的需要加上那个try的思路重新写一个函数。
只要能通用计算就可以,最好能校验下每一个input是否存在
你的那个办法可以计算出结果,就是没有办法校验是不是每一个input都存在,是不是需要正则表达式啊?
<input name="card_bc" />
<input name="card_page" />
<input name="card_bc1" />
<input name="card_bc2" />
<input name="card_name" />
<input type="button" onClick="compute('form_card', 'card_name.value = parseFloat(card_bc.value) + parseFloat(card_page.value) + parseFloat(card_bc1.value) + parseFloat(card_bc2.value) + 1')" />
</form><script type="text/javascript">
var compute = function (a, b) {
if ((a = document.forms[a])) {
try {
with (a) {
eval(b);
}
} catch(exp) {}
}
};
</script>
你的思路我明白了function compute1(a, b) {
if ((a=document.forms[a])) {
try {
with (a) {
eval(b);
}
} catch(exp) {alert("aaaaaaaa");}
}else{
alert("bbbbbbbbbbb");
}
}compute1(form_card,"card_name.value=Math.pow((parseInt(card_bc.value)), 2)*100+Math.sqrt(parseInt(card_page.value))")结果总alert("bbbbbbbbbbb");
而且也得不到值啊
<script type="text/javascript">
function compute(){
var formName=document.getElementsByTagName("form")[0];
var formula="card_name=Math.pow((parseInt(card_bc)), 2)*100+Math.sqrt(parseInt(card_page))";
var card_name=formula.split("=")[0];
var card_bc=formula.split("((parseInt(")[1].split(")),")[0];
var card_page_=formula.split("t(parseInt(")[1];
var card_page=card_page_.slice(0,card_page_.indexOf("))"));
var a=formName.elements;
if(a[card_name]!=null && a[card_bc]!=null && a[card_page]!=null){
eval(formula);
}else{
alert("error");
}}</script><form name="myf">
<input type="text" name="card_name" />
<input type="text" name="card_bc" />
<input type="text" name="card_page" />
<input type="button" value="cumpte" onclick="compute()" />
</form>
然后将字符串用" "分割成数组array。
array[0] = card_name
array[1] = Math
.
.
.以此类推。
然后把可能用到的数学函数关键字,比如Math,pow,parseInt,这些放到数组array_math中。
然后,对数组array得元素进行分析,
如果在array_math中,不进行是否存在的判断(意味着不是tag),否则进行tag判断。