2016-09-19 123 views
0

有什麼方法可以根據Javascript/jQuery函數更新紙張輸入元素嗎?我可以通過單擊鏈接來獲取舊的輸入,但我似乎無法弄清楚如何將舊的輸入值綁定到新的紙張輸入值,或者只是使用常規功能更新新的紙張輸入值。將聚合物輸入值綁定到非聚合物輸入值

<!-- polymer element loads in shadow DOM --> 
<my-form> 
    <paper-input id="id1" name='id1' value="{{val1}}" onmouseover="this.value=getId1Value();"></paper input> 
    <a href="#" onclick='myJavascriptFunction(1)' id='relativeValue1'>Subtract 1</a> 
    <a href="#" onclick='myJavascriptFunction(2)' id='relativeValue2'>Subtract 2</a> 
</my-form> 
<!-- end polymer element --> 

<!--HTML input element in light DOM --> 
<input type="text" id="id1" name="id1" value="{{val1}}" /> 
<!-- end HTML input element --> 

那麼這裏就是劇本和聚合物信息:

Polymer({ 
    is: 'my-form', 
    properties: { 
    val1: { 
     type: String, 
     value: getId1Value(); 
    } 
    } 
}); 
function getId1Value(){ return $$("#id1").val();} 
function myJavascriptFunction(val){ 
    $$("[name='id1']").val(evaluate(val));//evaluate returns a calculation based on val) 
} 
+0

如果您嘗試使用綁定?也許你可以嘗試添加一些屬性到'',然後更新並直接綁定到''值 – Dmitry

回答

0

這不正是我腦子裏想的,但達到的效果(同步/結合多個輸入),我用

<a href="#" onclick="document.querySelector('my-form::shadow #id1').value = myJavascriptFunction(1)">1</a> 

function myJavascriptFunction(val){ 
    $$("[name='id1']").val(evaluate(val));//evaluate returns a calculation based on val) 
    return evaluate(val); 
} 

在這種情況下,myJavascriptFunction不僅手動設置舊的輸入值,而且返回與鏈接onclick事件一起使用的值。所以我的解決方案是針對陰影DOM與document.querySelector()和調整myJavascript函數設置舊的輸入值並返回相同的值。