是否可以动态插入对象参数的值?

时间:2011-07-21 01:18:01

标签: javascript html

我一直试图解决这个问题,但我找不到与我的问题相关的答案。

我想知道是否可以从输入框动态输入对象参数的值?

示例:

    <form name="myform">

    <input type="visibile" name="formvar" value="">
</form>

    <object id="myobject">
       <param name="color" value="{input destination}" />

我基本上想知道是否可以动态地将值添加到“输入目的地”

由于

2 个答案:

答案 0 :(得分:1)

创建object后(加载页面时),param将传递给该对象。因此,您无法在此之后更改“输入目的地”。

您可以延迟object的创建,直到input发生变化,如下所示。

<form name="myform">
    <input type="visibile" name="formvar" value="" onchange="createObject(value)">
</form>
<script>
    function createObject(value) {
        document.getElementById('document_container').innerHTML = 
        '<object id="myobject">' +
            '<param name="color" value="' + value + '"/>' +
        '</object>';
    }
</script>
<div id="object_container"></div>

唯一的缺点是,object更改后会反复创建input

另一个选择是确保object插件提供一些接受设置新参数的API,例如myobject.setParam('color', value)

答案 1 :(得分:0)

您可以使用此对象:

http://www.jsclasses.org/package/274-JavaScript-Template-engine-that-takes-objects-as-parameters.html

或在github上

https://github.com/blauharley/TemplateJS

能够将JSON-Object的值插入到这样的字符串中:

 var str = '<object id="myobject"> <param name="color" value="{input}{destination}" />...';

 var obj = [{ input: { destination: 'a value'} }]
 var templ = new TemplateJS();

 templ.insertTemplate(obj,str,'#html-id-to-insert-output');

第三个参数('#html-id-to-insert-output')用于插入insertTemplate-methode的输出。

希望这有帮助。