我的影片是与jQuery的动态创建一个的SelectList:如何发送选择文本而不是表单上的值?
<script>
//Create and Append Select List
var sel = $('#MealTierDiv');
sel.append(
$('<select />').attr({
'id': 'MealTier',
'onChange': 'calculatePrice()',
'asp-for' : 'MealTier'
}).append(
$('<option />', { value:@Model.PriceBasic, text: 'Basic' }),
$('<option />', { value:@Model.PriceMiddle, text: 'Middle' }),
$('<option />', { value:@Model.PriceHigh, text: 'High' })
)
);
</script>
而这个成功建立在我用适当的选项Razor视图选择列表的:
<option value="10">Basic</option>
等每个选项。
CalculatePrice看起来是这样的:
<script>
function calculatePrice() {
var y = document.getElementById("EstimatedCost");
var x = document.getElementById("NumberOfAttendees");
var z = document.getElementById("MealTier");
y.value = x.value * z.value;
}
</script>
基本上我读从选择选项的值,并乘以NumberOfAttendees它们(这是一个输入字段)。计算工作正常,并在Sharepoint的结束,我看到估计成本计算和保存正确,但我怀疑我没有得到“10”而不是“基本”的选择是整个值与文本的东西。
我需要这些值,因为calculatePrice
方法获取了选择列表项的值,并将其乘以输入字段的值并更新第三个只读输入以显示估计价格。这些项目被保存到Sharepoint,当我去查看实际的Sharepoint列表项目时,这里的值是空白的,我怀疑这是因为它是一个期望字符串值的字段,它将从value
发送数字,而不是从text
。
我该怎么做才能让我的表单帖子发送text
到Model.MealTier
而不是value
?
你可以把文本的价值,并把价值可以在您的calculatePrice方法中使用的data- *字段。否则,你必须找到选择的选项并获取它的'html()'或'text()'。这只适用于Ajax请求。 – Taplar
@Taplar你能解释一下怎么做?我对jQuery非常陌生。我将添加计算方法,以便您可以看到它在做什么。 – Mkalafut