我正在使用html5和Knockout Js在网页上工作并尝试将值插入SQL表中但由于某些原因我无法获得在下拉框中选择的项目的ID
例如,我有以下SQL表
ProductOrder Product
1 VS
2 Netg
5 CCast
5 Firefox
6 App
现在使用Html页面我有一个textbox
我将在其中输入product name
和dropdown box
,其中包含同一个表中的产品列表。当输入{{1}时从product name
框中选择一个product
,它应该dropdown
product name
textbox
product order
product
1}}框。
我正在使用以下脚本
HTML
dropdown
淘汰JS
<td colspan="2"><input type="text" id="txbInput" placeholder="Product Name" data-bind="value: Product"/>
<td >
<select data-bind="options: $root.datainput, optionsText: 'ProductName', optionsValue: 'ProductOrder',value: selectedPOrder, optionsCaption: 'Product'">
</select></td>
<td>
<input type="button", onclick="ClearFields();" class="btn btn-success" data-bind=" click: add, visible: !loading()", value="Add Product"/>
</td>
出于某些原因,当我点击 self.selectedPOrder = ko.observable();
var porder = this.selectedPOrder();
self.add = function (product) {
var payload = { ProductName: this.Product(), ProductOrder: porder };
$.ajax({
url: '/odata/Products',
type: 'POST',
data: JSON.stringify(payload),
contentType: 'application/json',
dataType: 'json'
});
}
时,它会插入我在文本框中输入的Add
名称,但它会在product
中插入0而不管productorder
我在product
中选择。即使脚本dropdown box
也无效。
self.selectedPOrder()
我可以知道我错在哪里以及为什么插入零
答案 0 :(得分:0)
您可能需要使用$root.selectedPOrder
<select data-bind=" options: $root.datainput,
optionsText: 'ProductName',
optionsValue: 'ProductOrder',
value: $root.selectedPOrder,
optionsCaption: 'Product'">
</select>
答案 1 :(得分:-1)
像这样访问self.add函数中的选定值。
self.add = function (product) {
var payload = { ProductName: this.Product(), ProductOrder: self.selectedPOrder() };
$.ajax({
url: '/odata/Products',
type: 'POST',
data: JSON.stringify(payload),
contentType: 'application/json',
dataType: 'json'
});
}