我有一段代码,根据一些其他标准动态地向选择字段添加选项.看起来有点像这样:
if (chosen == "a_value") {
selbox.options[selbox.options.length] = new Option('text_1','value_1');
selbox.options[selbox.options.length] = new Option('text_2','value_2');
selbox.options[selbox.options.length] = new Option('text_3','value_3');
}
Run Code Online (Sandbox Code Playgroud)
我需要的是为包含特定值的新选项添加额外的属性.在这种情况下,该属性将被称为"折扣",该值将是一个整数.稍后我将读取属性值并根据Option字段中的值处理它们.
因此,一旦脚本准备就绪,选项将如下所示;
<option value="value_1" discount="integer">text_1</option>
Run Code Online (Sandbox Code Playgroud)
说得通?
现在我怎么能在不使用JS框架的情况下做到这一点.它只是我需要的这一小部分代码,因此框架对于这个项目来说是过度的.
干杯! :-)
我有麻烦让attachEvent工作.在所有支持addEventListener处理程序的浏览器中,下面的代码就像魅力一样,但在IE中是完全的灾难.它们有自己的(不完整的)变体,称为attachEvent.
现在这是交易.如何以与addEventListener相同的方式使attachEvent工作?
这是代码:
function aFunction(idname)
{
document.writeln('<iframe id="'+idname+'"></iframe>');
var Editor = document.getElementById(idname).contentWindow.document;
/* Some other code */
if (Editor.attachEvent)
{
document.writeln('<textarea id="'+this.idname+'" name="' + this.idname + '" style="display:none">'+this.html+'</textarea>');
Editor.attachEvent("onkeyup", KeyBoardHandler);
}
else
{
document.writeln('<textarea id="hdn'+this.idname+'" name="' + this.idname + '" style="display:block">'+this.html+'</textarea>');
Editor.addEventListener("keyup", KeyBoardHandler, true);
}
}
Run Code Online (Sandbox Code Playgroud)
这会调用KeyBoardHandler函数,如下所示:
function KeyBoardHandler(Event, keyEventArgs) {
if (Event.keyCode == 13) {
Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
Event.returnValue = false;
}
/* more code */
}
Run Code Online (Sandbox Code Playgroud)
我不想使用任何框架,因为A)我正在尝试学习和理解某些东西,并且B)任何框架只是我将要使用的代码的重载.
任何帮助都非常感谢!