当前位置: 代码迷 >> JavaScript >> 难题,请求解答,
  详细解决方案

难题,请求解答,

热度:434   发布时间:2012-03-05 11:54:02.0
难题,请求解答,高手进!!!
我想要这样一个js函数,如下:

function   compute(formName,   formula){


}

该函数能对我从formula中传如的式子做出计算和赋值;也就是说我要一个通用的计算函数.


例如,我这样调用:compute(form_card,   "card_name=Math.pow((parseInt(card_bc)),   2)*100+Math.sqrt(parseInt(card_page)) ")

他就会执行这样的行为:

1.校验   card_name,card_bc,card_page是否存在;
2.计算并进行赋值;

效果相当于:


function   compute(){
with(document.form_card){
if(card_bc!=null&&card_name!=null&&card_page!=null){
card_name.value=Math.pow((parseInt(card_bc.value)),   2)*100+Math.sqrt(parseInt(card_page.value));
}
}
}

------解决方案--------------------
关键是
1.校验 card_name,card_bc,card_page是否存在;

这个比较难,先旁观!
------解决方案--------------------
昂,错了。。那些都k掉。。
<script type= "text/javascript ">
var compute = function (a, b) {
if ((a = document.forms[a])) {
try {
with (a) {
eval(b);
}
} catch(exp) {}
}
};
</script>
------解决方案--------------------
1.校验 card_name,card_bc,card_page是否存在;

card_name,card_bc,card_page是tag <> 这样的标签麽?如果是的话,很简单啊。
------解决方案--------------------
这个问题关键在于要把四则区分开,哪些是参数对象哪些是符号,
楼主为什么向这里面钻啊,直接写
compute(form_card, "card_name.value=Math.pow((parseInt(card_bc.value)), 2)*100+Math.sqrt(parseInt(card_page.value)) ")
这样要简单很多
  相关解决方案