| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1363 人关注过本帖
标题:怎样将内部函数得到的值传递给外部函数变量
只看楼主 加入收藏
ibm888
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:100
注 册:2010-6-9
结帖率:37.5%
收藏
已结贴  问题点数:10 回复次数:12 
怎样将内部函数得到的值传递给外部函数变量
<script type="text/javascript">
 function Str(){
  var temp_s;
   var selName = null;
var inputs = document.getElementsByTagName("input");
 for( var i = 0; i < inputs.length; i++ ){
  if( inputs[i].type == "text" ){
   inputs[i].onchange= function(){
    var temp_s1;
    var temp_t1;
    selName = this.name;  //得到焦点(当前文本框)的名字
  temp_s1 = document.getElementById(selName).value;
  temp_s=temp_s1
}
alert(temp_s)
}
}
 }
</script>
这样写会提示红色部分未定义,请问如何能将内部得到的temp_s1传递到外部函数变量temp_s
搜索更多相关主题的帖子: javascript function 文本框 
2012-07-12 09:46
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
将var temp_s;这行去年就行了

★★★★★为人民服务★★★★★
2012-07-12 10:08
coretear
Rank: 4
等 级:业余侠客
威 望:1
帖 子:102
专家分:244
注 册:2012-6-5
收藏
得分:0 
外部声明
2012-07-12 12:38
ibm888
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:35
专家分:100
注 册:2010-6-9
收藏
得分:0 
去掉不行 放到function之前也不行
如果var temp_s提示undefined 如果没有var temp_s 则提示temp_s未定义
 

[ 本帖最后由 ibm888 于 2012-7-13 14:59 编辑 ]
2012-07-13 14:51
coretear
Rank: 4
等 级:业余侠客
威 望:1
帖 子:102
专家分:244
注 册:2012-6-5
收藏
得分:5 
好多天没来了 给你解决一下
如果你非要用temp_s那就这么搞

程序代码:
<script type="text/javascript">
var temp_s = Str()
function Str(){
    var selName = null;
    var inputs = document.getElementsByTagName("input");
    for( var i = 0; i < inputs.length; i++ ){
        if( inputs[i].type == "text" ){
            inputs[i].onchange= function(){
                var temp_s1;
                var temp_t1;
                selName = this.name;  //得到焦点(当前文本框)的名字
                temp_s1 = document.getElementById(selName).value;
                return temp_s1;
            }
        }
    }
}
alert(temp_s)
</script>


[ 本帖最后由 coretear 于 2012-7-13 18:28 编辑 ]
2012-07-13 18:11
coretear
Rank: 4
等 级:业余侠客
威 望:1
帖 子:102
专家分:244
注 册:2012-6-5
收藏
得分:0 
你把你要的目的写出来 刚自习看来一下,写的有点问题
2012-07-13 18:51
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 4楼 ibm888
那是因为里面的if语句中temp_s语句没执行到

★★★★★为人民服务★★★★★
2012-07-14 06:48
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:5 
楼主,你这个问题,不是 怎样将内部变量值传递到外部的问题

直接引用你的内容,并在上面做了注解,你看看:

 function Str(){
  var temp_s;
   var selName = null;
var inputs = document.getElementsByTagName("input");
 for( var i = 0; i < inputs.length; i++ ){
  if( inputs.type == "text" ){
   inputs.onchange= function(){    //此处定义函数。这个函数只有在文本框修改内容并离开时才会运行,在定义时不会运行。
    var temp_s1;
    var temp_t1;
    selName = this.name;  //得到焦点(当前文本框)的名字
  temp_s1 = document.getElementById(selName).value;
  temp_s=temp_s1
}
alert(temp_s)    //在调用函数Str()时,此行被执行,此时,“inputs.onchange= function(){”只是在定义函数,它所定义的函数并不会运行,所以此时变量temp_s还是空值。
}
}
 }

这样写会提示红色部分未定义(提示的意思应该是空值),请问如何能将内部得到的temp_s1传递到外部函数变量temp_s


做自己喜欢的事!
2012-07-14 07:45
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:0 
楼主,你这个问题,不是 怎样将内部变量值传递到外部的问题

直接引用你的内容,并在上面做了注解,你看看:

 function Str(){
  var temp_s;
   var selName = null;
var inputs = document.getElementsByTagName("input");
 for( var i = 0; i < inputs.length; i++ ){
  if( inputs.type == "text" ){
   inputs.onchange= function(){    //此处定义函数。这个函数只有在文本框修改内容并离开时才会运行,在定义时不会运行。
    var temp_s1;
    var temp_t1;
    selName = this.name;  //得到焦点(当前文本框)的名字
  temp_s1 = document.getElementById(selName).value;
  temp_s=temp_s1
}
alert(temp_s)    //在调用函数Str()时,此行被执行,此时,“inputs.onchange= function(){”只是在定义函数,它所定义的函数并不会运行,所以此时变量temp_s还是空值。
}
}
 }

这样写会提示红色部分未定义(提示的意思应该是空值),请问如何能将内部得到的temp_s1传递到外部函数变量temp_s


做自己喜欢的事!
2012-07-14 07:47
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:0 
网络有问题,上传了两次!

做自己喜欢的事!
2012-07-14 07:48
快速回复:怎样将内部函数得到的值传递给外部函数变量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018608 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved