2014-02-15 71 views
0

我試圖在select中加上一個選項值。我需要輸出以大寫字母「K」開頭。這裏是我的jQuery:jQuery .prepend()不工作

$(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); 
}); 

});

,這裏是我的fiddle

我已經試過

$('.dialogbox').val(capacityValue).prepend('K'); 

,但似乎並沒有工作。我見過的所有例子都表明這應該起作用。先謝謝您的幫助。

回答

2

有相當多的問題與您的代碼:

(1).prepend()是前面加上一個元素作爲另一個元素的一個孩子。你正試圖在一個字符串上調用它。我想你想使用字符串連接:

"K" + $('select.dropdown').find(':selected').data('capacity') 

(2)你缺少你的HTML的下拉列表的「名稱」屬性的=

<select class='dropdown' name='dropdown'> 

(3)你有兩個元素class="dialogbox",所以下面打開兩個對話框:

$(".dialogbox").dialog("open"); 

您既可以使用兩個不同的類名,或包括在選擇的元素類型來區分賭注吐溫他們:'div.dialogbox' & 'input.dialogbox'

(4)您連接兩個change事件處理程序的下拉列表。他們所稱的訂單不能保證。你應該把它們合併成一個。

(5)你應該使用.text().html()插入文字的元素,而不是.val()。使用.val()僅用於設置輸入元素的值。

show: 'puff' 

或者:

(6)可以通過包括show選項建立一個對話的開幕動畫效果

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); 
}); 

jsfiddle

+0

所以我會使用.val()如果我想獲得所選選項的值來存儲它的值,所以我可以將它傳遞給PHP腳本? – McFly

+0

@MFFLY - 是的,'.val()'用於獲取和設置輸入的'value'屬性,它用於獲取'