关键是
1.校验 card_name,card_bc,card_page是否存在;这个比较难,先旁观!
1.校验 card_name,card_bc,card_page是否存在;这个比较难,先旁观!
解决方案 »
- Jquery获取到div中checkbox中每一组的数量
- Ext的获取焦点问题
- 怎样能让多个图片 或者a标签 或者div不增加scrollTop 而增加scrollLeft????
- setTimeout的问题!急!
- 求一个在网页上不让右键,不让左銉拉动,不让按Ctrl的集大成代码,分不多,但纯对给!
- 高分求解,怎么控制层的位置在浏览器的中央?
- 为什么我的程序在ie5.0不执行?
- 简单问题,怎么得到页面上同名文本框的个数?
- 我想用javascript选中一组单选框中的一个,怎么办?
- Extjs新手求问关于chart雷达图的
- 感谢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判断。