着急万分,倾家荡产求解决一个javascrip小问题!在线等!!
刚才发了一遍,居然说我的帖子太长,又给返回,以前打的都没有了
有一个文件树,要求修改其中的方法实现
现在的效果是这样的:
当点击rename时,触发editNodeName()事件,弹出一个对话框,里面的名字默认为原来的名字,当输入新名字后,点确定,就把新输入的值放到name中,剩下的就由已经写好的code来处理就可以了
想实现的效果:当点击rename时,触发editNodeName()事件,原来的文件名变为一个input,里面的名字默认为原来的名字,当输入新的名字后,点一下input外的其他地方,就把新输入的值放到name中
,剩下的由写好的java模块来处理就可以了,处理后,input就变为文字,不能输入了
类似下面这样的htm中演示的效果:
<script language="javascript">
function Rename()
{
Filename=document.all.span1.innerHTML;
alert("you will change the filename");
document.all.span1.innerHTML="<input type=text name=filename1 value=" + Filename + " onblur=nameChanged()>";
}
function nameChanged()
{
var Inputvalue=document.form1.filename1.value; document.all.span1.innerHTML=Inputvalue;
}
document.write("<form name=form1 method=post action='' >");
document.write("<span id='span1'>Filename</span>");
document.write("<input type=button name=button1 value=changename onClick=Rename()>");
document.write("</form>");
</script>
问题点数:100、回复次数:6Top
1 楼bamaopo(龙骧云)回复于 2005-10-25 12:13:38 得分 0
这个是editNodeName函数,
function editNodeName(){
var tag = window.top.frames['content'].document.getElementById('<%=UENConstants.CONNECTION_VALIDATOR%>');
if(tag==undefined)
return;
if(tag.value != '0'){
alert("<bean:message bundle="label" key="default.wizardError" />");
//alert(c_node);
return null;
}
if(tree.currentNode.id == '1'){
alert('<bean:message bundle="label" key="otv.change.root" />');
return;
}
var param= tree.nodes[tree.currentNode.parentId + tree.divider + tree.currentNode.id];
var nt=param.getParam("nodeType");
var ns=param.getParam("nstatus");
var name=null;
if(nt == '0')
name=prompt("<bean:message bundle="label" key="otv.change.folder" />: ",param.getParam("text"));
else
name=prompt("<bean:message bundle="label" key="otv.change.device" />: ",param.getParam("text"));
if(name==null)
return;
if(nt == '1' && !validateFolderName(name))
return;
if(nt != '1' && !validateDeviceName(name))
return ;
var myXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
var uri = "/ui/tree.do?method=editFolder&name="+encodeURIComponent(name)+"&nodeId="+tree.currentNode.id+"&"+getRandomNumber();
//alert(uri);
myXmlHttp.open("GET",uri,false);
myXmlHttp.send();
//if(xmlServerHttp.readyState==4){
// if(xmlServerHttp.status==200){
// return bytes2BSTR(xmlServerHttp.responseBody);//
// }
//}
// alert(myXmlHttp.responseText);
var t=myXmlHttp.responseText;
if(!processError(t))
return ;
var did = param.getParam("deviceId");
if(did=="") did="0";
editNode(tree.currentNode.parentId,tree.currentNode.id,name,nt,ns,"ASUS",did);
tree.focus(tree.currentNode.id);
tree.click(tree.currentNode.id);
}Top
2 楼bamaopo(龙骧云)回复于 2005-10-25 12:19:31 得分 0
就是改变一下
name=prompt("<bean:message bundle="label" key="otv.change.folder" />: ",param.getParam("text"));
看看有没有办法,让这个弹出对话框的变为input那样的输入
如果资料不够,请留下你们的联系方式
提供本页的源文件,实在太长了,怎么都贴不开Top
3 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2005-10-26 19:11:36 得分 0
大体明白你的意思了,就是一个可输入的弹出框,这个在JS中没有这个功能,但是可以在其中调用VBSCRIPT中的方法,返回一个值给JAVASCRIPT就可以了Top
4 楼lcwlyl(网络幽灵)回复于 2005-10-26 19:20:13 得分 0
可以用一个网页对话框。Top
5 楼dinggushan(秦绶(QQ549761))回复于 2006-03-14 16:26:04 得分 0
我来解决Top
6 楼dinggushan(秦绶(QQ549761))回复于 2006-03-14 16:28:12 得分 100
我来了Top




