2014-02-06 2 views
-2
<select id="pageName" name="pageName"> 
<option value="">Select one....</option> 
<option value="All">All</option> 
<option value="value1">value1</option> 
<option value="value2">value2</option> 
</select> 

Я выбрал все и выходкак проверить значение с помощью JavaScript или JQuery

$("select#pageName").val()=='All' - истинный

Но я выбрал «Выберите один ....» и выход ниже ЗАЧЕМ? пожалуйста

$("select#pageName").val()=="Select one...." - ложь

Как я могу получить ниже и 'истинный' пожалуйста .....

+0

использование текста() ............... –

+1

'<параметр значение = "">' Значение а не '' Выберите один ... "' – nderscore

+0

Если вы установили значение атрибута, метод val() возвращает это значение атрибута. Удаление значения атрибута исправит его: http://jsfiddle.net/T6PtL/ –

ответ

1

При использовании .val(), JQuery возвращает текущее значение выбранного элемента. Он вернет атрибут value выбранного элемента.

Этот знак считается, что значение select one... равно '' (пустая строка), а значение All - 'All'.Таким образом, вы можете сделать:

$("select#pageName").val()=="" //value of Select one... 

или (обратите внимание, что это не очень хорошая практика)

$("select#pageName :selected").text() == 'Select one...' 
3

Вы можете использовать:

$("select#pageName").val()=="" 

val() получить текущее значение ваш элемент select, основанный на атрибуте value вашего option.

В вашем случае первый вариант имеет пустое значение, поэтому вам нужно сравнить его с пустой строкой.

Если вы хотите сохранить ваш селектор, вы можете либо добавить значение для первого варианта, как Select one.... или вы можете использовать text() метод:

$("select#pageName").text()=="Select one...." 
+0

или удалить значение атрибута для этой опции, так как val() вернет свойство узла SELECT DOM –

2

Для того, чтобы работать, что вам нужно использовать, потому что val атрибут пусто в этом случае

$("select#pageName").text()=="Select one...." 

или

$("select#pageName").val()=="" 

эти два вернутся true

Или вы можете установить значение атрибута, то он возвращает истину

<option value="Select one....">Select one....</option> 


$("select#pageName").val()=="Select one...." 
2

Метод val() возвращает значение атрибута value. В вашем случае, вы, вероятно, хотите

<option value="Select one...">Select one...</option> 

или

$("select#pageName").val()=="" 
0

Чтобы установить значение элемента управления, вам нужно использовать:

$("select#pageName").val('All'); 

или (еще один пример)

$("select#pageName").val('value1'); 

читать значение управления, используйте:

var somevarname = $("select#pageName").val(); 

Обратите внимание, что выше считывает содержимое атрибута value. Поэтому в записи Select One атрибут значения пуст, поэтому вы будете читать определенную переменную без содержимого.

Если вы хотите, чтобы прочитать значение текста между опцией тегов (для выбранного элемента), используйте:

$("select#pageName :selected").text() 

Вот вам пример:

jsFiddle Working Demo

HTML:

<select id="pageName" name="pageName"> 
    <option value="">Select one....</option> 
    <option value="All">All</option> 
    <option value="value1">value1</option> 
    <option value="value2">value2</option> 
</select> 
<div id="sumpin"> 
    <input id="myButt" type="button" value="Set Select Value" /> 
    <input id="urButt" type="button" value="Read Select Value" /> 
</div> 

JQuery/JavaScript:

$("select#pageName").change(function(){ 
    var pn = $("select#pageName").val(); //shortcut: use $(this).val(); 
    alert(pn); 
}); 
$('#myButt').click(function() { 
    var toset = prompt("Type: All or value1 or value2"); 
    $("select#pageName").val(toset); 
}); 
$('#urButt').click(function() { 
    alert($("select#pageName").val()); 
}); 
Смежные вопросы