function add(){ var o=oPopup.document.all['s1']; var s = o.outerHTML; var option = "<option>222</optopn>" s = s.substring(0,s.length-9) + option + "</select>"; o.outerHTML = s; }
就是: var objOp=document.createElement("option"); oPopup.document.all['s1'].appendChild(objOp); 你先试试
楼主, popup 里不支持脚本的运行, 只能响应事件. 再修改一下你的ADD函数: function add(){ var o=oPopup.document.all['s1']; o.options.length++; var op = o.options[o.options.length-1]; op.text = "222"; op.value = "222"; alert(o.innerHTML); }
meizz(梅花雪 封闭开发中) :[popup 里不支持脚本的运行] 什么意思 function add(){ var o=oPopup.document.all['s1']; var op = oPopup.document.createElement("OPTION"); op.value="222"; op.text = "222"; o.add(op); } 这样也可以啊
上面的程序我都试过了,结果如下: -------------------------------- function add(){ var o=oPopup.document.all['s1']; o.innerHTML+="<option>222</option>"; //alert(o.innerHTML); } 在body里也不行,popup里也不行。alert出来会截去一段! -------------------------------- function add(){ var o=oPopup.document.all['s1']; var s = o.outerHTML; var option = "<option>222</optopn>" s = s.substring(0,s.length-9) + option + "</select>"; o.outerHTML = s; } 在body和popup里都行。 -------------------------------- function add(){ var o=oPopup.document.all['s1']; o.options.length++; var op = o.options[o.options.length-1]; op.text = "222"; op.value = "222"; alert(o.innerHTML); } 在body和popup里都行。 --------------------------------- function add(){ var o=oPopup.document.all['s1']; var op = oPopup.document.createElement("OPTION"); op.value="222"; op.text = "222"; o.add(op); } 这是用了dom吧? 在body和popup里都行。 ------------------------------- function add(){ var o=oPopup.document.all['s1']; o.options.add(new Option("222",1)); } 这是我最初出问题的代码。 在body下是可以的。在pop下不行
<select name="attachlist" size=5 multiple tabindex="4" style="HEIGHT: 134px; WIDTH: 228px">
<option value="nOT"></option>
</select>
效果:
有一个按钮,一个文本框,
往文本框中输入一些内容,按下按钮,其中的内容就添加到select框中了,可反复操作
请指教!!!
---------------------------------------------------------------
<select name="attachlist" size=5 multiple tabindex="4" style="HEIGHT: 134px; WIDTH: 228px">
<option value="nOT"></option>
</select>
<input onclick="attachlist.options[attachlist.options.length]=new Option('a','a')" value=add type=button>
---------------------------------------------------------------
<script>
// 添加选项
function addOption(pos){
var objSelect = document.myForm.mySelect;
// 取得字段值
var strName = document.myForm.myOptionName.value;
var strValue = document.myForm.myOptionValue.value;
// 建立Option对象
var objOption = new Option(strName,strValue);
if (pos == -1 & pos > objSelect.options.length)
objSelect.options[objSelect.options.length] = objOption;
else
objSelect.add(objOption, pos);
}
// 删除选项
function deleteOption(type){
var objSelect = document.myForm.mySelect;
if(objSelect.options.length>0){
if (type == true)
objSelect.options[objSelect.selectedIndex] = null;
else
objSelect.remove(objSelect.selectedIndex);
}
else
alert("已经没有选项可以删除了!")
}
// 显示选项信息
function showOption(objForm){
var objSelect = objForm.mySelect;
if(objSelect.options.length>0){
document.all.myOptionName.value = objSelect.options[objSelect.selectedIndex].text;
document.all.myOptionValue.value = objSelect.options[objSelect.selectedIndex].value;
}
else
alert("没有选项可以显示!")
}
</script>
<form name="myForm">
<select name="mySelect">
<option value="value1" Selected>HTML</option>
<option value="value2">JavaScript</option>
<option value="value3">VBScript</option>
</select>
<input type="button" onclick="showOption(this.form)" value="显示">
<input type="button" onclick="deleteOption(true)" value="删除">
<input type="button" onclick="deleteOption(false)" value="Remove方法"><br><br>
选项名称 : <input type="text" name="myOptionName" value="CSS"><br>
选项的值 : <input type="text" name="myOptionValue" value="value4">
<input type="button" onclick="addOption(-1)" value="添加">
<input type="button" onclick="addOption(0)" value="插入">
</form>
---------------------------------------------------------------
<select name="attachlist" size=5 multiple tabindex="4" style="HEIGHT: 134px; WIDTH: 228px" id=sel>
<option value="nOT">delopt</option>
</select>
<input type=button onclick=delsel()>
<script>
function delsel()
{
var index;
index=document.all('sel').selectedIndex;
document.all('sel').remove(index);
}
</script>
实在不行就只能用dom了
var o=oPopup.document.all['s1'];
var s = o.outerHTML;
var option = "<option>222</optopn>"
s = s.substring(0,s.length-9) + option + "</select>";
o.outerHTML = s;
}
另外有没其他办法啊?dom怎么用
var objOp=document.createElement("option");
oPopup.document.all['s1'].appendChild(objOp);
你先试试
再修改一下你的ADD函数:
function add(){
var o=oPopup.document.all['s1'];
o.options.length++;
var op = o.options[o.options.length-1];
op.text = "222";
op.value = "222";
alert(o.innerHTML);
}
function add(){
var o=oPopup.document.all['s1'];
var op = oPopup.document.createElement("OPTION");
op.value="222";
op.text = "222";
o.add(op);
}
这样也可以啊
To: cloudside(在云的那一方) 你可以写一段最简单的JS语句到popup里, 你看看它能否被执行呢?
楼主的问题主要是他自己的ADD()函数写得不对. select 不能通过 innerHTML 新加 option
<html>
<head>
<script type="text/javascript"> var oPopup = window.createPopup();
oPopup.document.body.style.backgroundColor = '#D4D0C8';
oPopup.document.body.style.border = '2px outset'; function pop1(){
oPopup.document.body.innerHTML ="<table><tr><td>下拉:<select id=s1><option>111</option></select></td><td><button onclick=\"parent.add()\">增加一条</button></td></tr></table>";
oPopup.show(window.event.x,window.event.y+100,200,100);
} function add(){
var o=oPopup.document.all['s1'];
//alert(o.innerHTML);
//o.innerHTML+="<option>222</option>";
//alert(o.innerHTML);
var oOption = oPopup.document.createElement('OPTION');
oOption.value = "222";
oOption.text = "222";
o.add(oOption);
}
</script>
</head>
<body>
<table border="1" id="table1">
<tr>
<td onclick="pop1()">弹出菜单</td>
</tr>
</table>
</body>
</html>但是用innerHTML 确实有问题,问题出的很怪。
s=o.innerHTML;//s=<option selected>111</option>
s+="<option>222</option>"; //s=<option selected>111</option><option>222</option>
但是当你执行完
o.innerHTML=s;之后看一下
o.innerHTML的值竟然是 111</option><option>222</option>.
确实很奇怪。
难道是bug?
http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.1701624
--------------------------------
function add(){
var o=oPopup.document.all['s1'];
o.innerHTML+="<option>222</option>";
//alert(o.innerHTML);
}
在body里也不行,popup里也不行。alert出来会截去一段!
--------------------------------
function add(){
var o=oPopup.document.all['s1'];
var s = o.outerHTML;
var option = "<option>222</optopn>"
s = s.substring(0,s.length-9) + option + "</select>";
o.outerHTML = s;
}
在body和popup里都行。
--------------------------------
function add(){
var o=oPopup.document.all['s1'];
o.options.length++;
var op = o.options[o.options.length-1];
op.text = "222";
op.value = "222";
alert(o.innerHTML);
}
在body和popup里都行。
---------------------------------
function add(){
var o=oPopup.document.all['s1'];
var op = oPopup.document.createElement("OPTION");
op.value="222";
op.text = "222";
o.add(op);
}
这是用了dom吧?
在body和popup里都行。
-------------------------------
function add(){
var o=oPopup.document.all['s1'];
o.options.add(new Option("222",1));
}
这是我最初出问题的代码。
在body下是可以的。在pop下不行