Javascript 使用Google闭包从LabelInput访问数据
我正在尝试读取通过自动完成获得的输入,并将其显示为警报。在访问之后,我将未定义为警报,而不是通过labelinput访问的值 ex.js文件如下所示Javascript 使用Google闭包从LabelInput访问数据,javascript,html,google-closure-compiler,google-closure,google-closure-library,Javascript,Html,Google Closure Compiler,Google Closure,Google Closure Library,我正在尝试读取通过自动完成获得的输入,并将其显示为警报。在访问之后,我将未定义为警报,而不是通过labelinput访问的值 ex.js文件如下所示 goog.require('goog.dom'); goog.require('goog.ui.LabelInput'); goog.require('goog.ui.ac'); goog.require('goog.events.EventType'); function autoComplete() { var jobj = [{"ci
goog.require('goog.dom');
goog.require('goog.ui.LabelInput');
goog.require('goog.ui.ac');
goog.require('goog.events.EventType');
function autoComplete() {
var jobj = [{"cityname":"Bangalore","cityid":"1"},
{"cityname":"Bellary","cityid":"2"},
{"cityname":"Belgaum","cityid":"3"},
{"cityname":"Bidar","cityid":"4"},
{"cityname":"Mumbai","cityid":"5"},
{"cityname":"Munnar","cityid":"6"},
{"cityname":"Delhi","cityid":"7"},
{"cityname":"Diu/Daman","cityid":"8"}];
var li1 = new goog.ui.LabelInput("Enter City Name");
li1.render(goog.dom.getElement('d1'));
var array1 = new Array();
for (var i=0;i<jobj.length; i++)
{
array1[i] = jobj[i].cityname;
}
var ac2 = goog.ui.ac.createSimpleAutoComplete(
array1, goog.dom.getElement('d1'), false);
goog.events.listen(ac2,
goog.ui.ac.AutoComplete.EventType.UPDATE,
function() { var val2 = (goog.dom.getElement('d1').value);
alert(val2);
});
}
<html>
<head>
<script src="../closure-library/closure/goog/base.js"></script> <!--My Closure Library Location -->
<script src="ex.js"></script>
</head>
<body onload="autoComplete();">
<style>
.ac-renderer {
position: absolute;
width: 300px;
background-color: #fff;
border: 1px solid;
}
</style>
<div id="d1">City   </div><br><br>
</body>
</html>
goog.require('goog.dom');
goog.require('goog.ui.LabelInput');
goog.require('goog.ui.ac');
goog.require('goog.events.EventType');
函数自动完成(){
var jobj=[{“城市名称”:“班加罗尔”,“城市ID”:“1”},
{“cityname”:“Bellary”,“cityid”:“2”},
{“cityname”:“Belgaum”,“cityid”:“3”},
{“cityname”:“Bidar”,“cityid”:“4”},
{“城市名称”:“孟买”、“城市ID”:“5”},
{“cityname”:“Munnar”,“cityid”:“6”},
{“城市名称”:“德里”,“城市ID”:“7”},
{“cityname”:“Diu/Daman”,“cityid”:“8”}];
var li1=new goog.ui.LabelInput(“输入城市名称”);
li1.render(goog.dom.getElement('d1'));
var array1=新数组();
for(var i=0;i“goog.dom.getElement('d1')”将返回一个没有值的div元素。当您调用
li1.render(goog.dom.getElement('d1'));
您应该使用LabelInput类本身的getValue方法
li1.getValue()
或者,如果要访问在LabelInput render方法期间创建的输入元素,请调用
li1.getElement().value
资料来源: