提问:一个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未定义的错误,不知道是什么原因?
第一次在论坛发帖,不足之处请大家海涵...



 

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

你以[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]

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

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

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

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

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

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

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

  1. var selectDiv = divArray[i];
    [/code]

[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]

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

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

找一个JQuery的form插件吧。