我正在尝试从select中预置一个选项值。我需要输出以大写"K“开头。这是我的jQuery:
$(document).ready(function () {
$(".dialogbox").dialog({
modal: true,
autoOpen: false
});
$(".dropdown").change(function () {
$(".dialogbox").dialog("open");
$(".dialogbox").change("puff");
});
$('select.dropdown').change(function () {
var capacityValue = $('select.dropdown').find(':selected').data('capacity').toUpperCase();
$('.dialogbox').val(capacityValue);
});});
这是我的小提琴
我试过了
$('.dialogbox').val(capacityValue).prepend( 'K' );但这似乎行不通。我看到的所有例子都表明这是可行的。提前谢谢你的帮助。
发布于 2014-02-15 21:57:33
您的代码有很多问题:
(1) .prepend()用于将一个元素作为另一个元素的子元素。你想用字符串来称呼它。我认为您希望使用字符串连接:
"K" + $('select.dropdown').find(':selected').data('capacity')(2)下拉列表的"name“属性在html中缺少一个=:
<select class='dropdown' name='dropdown'>(3) class="dialogbox"有两个元素,因此下面打开两个对话框:
$(".dialogbox").dialog("open");您可以使用两个不同的类名,或者在选择器中包含元素类型来区分它们:'div.dialogbox'和'input.dialogbox'
(4)将两个change事件处理程序附加到下拉列表。他们接到的订单没有保证。你应该把它们组合成一个。
(5)应该使用.text()或.html()将文本插入元素,而不是.val()。使用.val()只是为了设置输入元素的值。
(6)可以通过包括show选项来建立打开对话框的动画效果:
show: 'puff'或者:
show: { effect: 'puff', duration: 1000 }尝试以下几点:
$(".dropdown").change(function () {
var capacityValue = "K" + $(this).find(':selected').data('capacity').toUpperCase();
$('div.dialogbox').text(capacityValue).dialog("open");
$('input.dialogbox').val(capacityValue);
});小提琴
发布于 2014-02-15 21:47:25
.prepend()是在dom元素前面加上一个元素。在你的情况下,试着像这样把文字放在前面,
var capacityValue = "K"+ $('select.dropdown').find(':selected').data('capacity');更新的小提琴
发布于 2014-02-15 21:53:52
我看到你的小提琴了,我想你不知道你是怎么做的。capacityValue,它只是属性值。
.prepend
描述:将参数指定的内容插入到匹配元素集中每个元素的开头。
http://api.jquery.com/prepend/
capacityValue它不是元素,它是对象字符串,不是更多。
https://stackoverflow.com/questions/21804007
复制相似问题