liyuanjie
liyuanjie
2010-05-20 09:41

提问:一个javascript组件不知道如何使用,求教!

已采纳

javascript代码如下:
    

     org.form.FormEditer=function(formObj){       //formObj是jsp文件中的form名称
                  
     }
     org.form.FormEditer.prototype={
    /***************************************基本的操作(從外部調用**************************************************/
    /**
    * 裝載函數
    */
        init:function(){
            
        },
    




在jsp文件中我是这样初始化的:
   

    <script type="text/javascript" src="script/formEdit/formEdit.js"></script>
    <html>
      <head>
      </head>
      <body>
        <form id="formObj" name="formObj"> 
        </form>
      </body>
    </html>
    <script type="text/javascript">
    window.onload = function(){
          indexFun.init();
    }
    var indexFun = function(){
          return{
        init:function(){
             oForm = new org.form.FormEditer("formObj");
                         oForm.init();
        }
          }
    }();
    </script>
    




发现总是报org未定义的错误,不知道是什么原因?
第一次在论坛发帖,不足之处请大家海涵...



 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

12条回答

  • myali88 myali88 11年前

    那你在好好调试一下,看看还有什么错误。直接改掉,不要依循以前的固定想法。

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    找一个JQuery的form插件吧。

    点赞 评论 复制链接分享
  • chem_zqm chem_zqm 11年前

    这破组件要引用一堆JS文件,而且JS文件的顺序很可能要固定(这个就看引用关系了),麻烦得很呐

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    [quote]呵呵,肯定不是这问题,这个组件是没有错的,关键是怎么用...
    以前是引用的一个include.jsp文件,没有问题。这个jsp的代码已经贴出来了。
    现在想在当前的页面中不引用这个include.jsp文件一样使用这个组件。
    [/quote]
    你先不要这么武断,你可以一步一步改改看,但有一点可以肯定,在JS里面
    [code="javascript"]divArray(i)[/code]和[code="javascript"]divArray[i][/code]表达的含义肯定不一样。

    点赞 评论 复制链接分享
  • weixin_42518082 weixin_42518082 11年前

    [code="java"]
    // 在formEdit.js头部加入下面代码
    (function(){

    if(window.org === undefined) window.org = org = {};

    if(window.org.form === undefined) window.org.form = org.form = {};

    })()[/code]

    [code="java"]
    //在formEdit.js中的init函数中找到下面的这段代码
    this.form.className = this.formClass;
    var divArray = this.form.getElementsByTagName("div");
    for(var i=0;i<divArray.length;i++){

    //把 for(var i=0;i<divArray.length;i++){
    // 改成 for(var i=0;i<selectDiv&&divArray.length;i++){
    [/code]

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    哦,你这里写错了[code="javascript"] 1. var selectDiv = divArray(i); [/code]
    看你的说明这里的divArray是数组,应该这样访问
    [code="javascript"]

    1. var selectDiv = divArray[i];
      [/code]
    点赞 评论 复制链接分享
  • weixin_42518082 weixin_42518082 11年前

    那他原来的demo能正确执行吗? 而且有效果吗?

    点赞 评论 复制链接分享
  • weixin_42518082 weixin_42518082 11年前

    把common.js中的内容拷贝到formEdit.js中, 需要放在前面

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    我说了你的JS还有其他错误,[code="javascript"] var selectDiv = divArray(i); [/code]这个函数divArray也没有,所以没有你要的效果,你查查这个函数定义在哪里或哪个文件了。

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    对呀,我想也是有其他js没引进了,不过你也可以自己写,你把[code="javascript"]
    if(window.org === undefined) window.org = org = {};
    if(window.org.form === undefined) window.org.form = org.form = {};
    [/code]
    这两句加到formEdit.js文件的最前面,我试过了,不过出现之前的错误,但还有个错,是其他的。

    点赞 评论 复制链接分享
  • weixin_42518082 weixin_42518082 11年前

    demo里引用了[b][/b]
    估计是缺少common.js文件造成的

    去找到common.js, 并引入进来

    点赞 评论 复制链接分享
  • myali88 myali88 11年前

    你以[code="javascript"]org.form.FormEditer[/code]
    这种形式来做为命名空间,你要知道每一部分都是一个对象属性,所以要么你自己先定义org.form 部分,或者已经有其他JS里面定义好了,引用进来及可以用。如果自己定义的话,可以像这样:
    code="javascript"{
    if(window.org === undefined) window.org = org = {};
    if(window.org.form === undefined) window.org.form = org.form = {};
    })()
    [/code]

    点赞 评论 复制链接分享

相关推荐