我有一個JavaScript對象與幾個屬性。該對象還包含一個實例方法,該方法返回兩個對象屬性的計算結果。jQuery的數據鏈接不與對象方法
我使用新的Jquery .link()插件(http://api.jquery.com/link/)來更新UI和表單元素與對象屬性值,反之亦然,無論何時窗體或對象被更新。
除了一個表單元素,它應該包含對象的實例方法的結果,但永遠不會更新,這是所有工作。
我已經在窗體上放置了一個按鈕來手動檢查Discrepancy的值,並且這個工作正常,但jQuery鏈接插件並沒有自動填充輸入元素,儘管它填充了鏈接到對象屬性的輸入元素。所有元素都有一個id和name屬性。
任何人都可以告訴我哪裏出錯了嗎?
我的javascript:
<script>
function Product() {
this.InStock = 0;
this.Ordered = 0;
}
// object's instance method
Product.prototype.Discrepancy = ComputeDiscrepancy;
function ComputeDiscrepancy() {
return this.InStock - this.Ordered;
}
$(document).ready(function() {
var products = new Array();
products[0] = new Product();
products[1] = new Product();
$("form").link(products[0], {
InStock: "product0_InStock",
Ordered: "product0_Ordered",
Discrepancy: "product0_Discrepancy"
});
$("form").link(products[1], {
InStock: "product1_InStock",
Ordered: "product1_Ordered",
Discrepancy: "product1_Discrepancy"
});
// button for me to manually check discrepancy method works
$("#checkData").click(function() {
alert(products[0].InStock);
$("#product0_Discrepancy").val(products[0].Discrepancy());
});
}); </script>
HTML:
<table>
<tr>
<th></th><th>Product 1</th><th>Product 2</th>
</tr>
<tr>
<td> In Stock</td>
<td><input id="product0_InStock" name="product0_InStock"/></td>
<td><input id="product1_InStock" name="product1_InStock"/></td>
</tr>
<tr>
<td>Ordered</td>
<td><input id="product0_Ordered" name="product0_Ordered"/></td>
<td><input id="product1_Ordered" name="product1_Ordered"/></td>
</tr>
<tr>
<td>Discrepancy</td>
<td><input id="product0_Discrepancy" name="product0_Discrepancy"/></td>
<td><input id="product1_Discrepancy" name="product1_Discrepancy"/></td>
</tr>
</table>
我沒有看到任何地方的表單元素 - 它是從頁丟失,或者只是從你的例子中省略? – 2010-10-15 17:32:57
它在頁面中,我剛剛從我的示例中省略。 – Robini 2010-10-15 22:15:19