日期:2014-05-16  浏览次数:20321 次

javascript函数的参数可以是页面元素吗?
本帖最后由 xiaosong2008 于 2013-08-30 11:32:08 编辑
    最近,我在做一个Asp.Net页面开发时,要实现上传图片后,将上传图片的地址读取到图片文本框中,为此,我写了一个JavaScript函数,如下:
         <script>
        function res(textBox,value1)
        {
            window.opener.form1.getElementById["textBox"].value= " \/UserFiles\/images\/" + value1;
            window.close();
        }
        </script>
    这个函数有两个参数,textBox对应图片文本框Id,value1对应上传后的图片名。
     想实现的功能是:图片上传后,调用这个函数,将上传图片的名称写入到对应的图片文本框中。
     经测试,Asp.Net后台程序能够获取参数值,但是调用这个函数后总是提示:
     0x800a138f - Microsoft JScript 运行时错误: 无法获取属性“textBox”的值: 对象为 null 或未定义
     这里的参数textBox是页面中表单form1中的文本框,看来是函数没有获取Id为textBox的页面元素值。
     想请教一下各位:
     javascript函数的参数可以是页面元素吗?如果可以,我这个函数的写法有什么错误吗?

------解决方案--------------------
textBox对应图片文本框Id,

我怀疑你的id 是.net下的id
------解决方案--------------------
引用:
Quote: 引用:

试试:
window.opener.form1.textBox.value= " \/UserFiles\/images\/" + value1;


之前就是这样写的,同样的错误提示!


这样写textBox是<input的name
------解决方案--------------------
你的textBox是什么?

是name字符串的话
window.opener.form1[textBox].value= " \/UserFiles\/images\/" + value1;

是id字符串的话
window.opener.document.getElementById(textBox).value= " \/UserFiles\/images\/" + value1;

是dom元素对象的话
textBox.value= " \/UserFiles\/images\/" + value1;

------解决方案--------------------
window.opener.forms[form][textBox].value= " \/UserFiles\/images\/" + value1;