2016-09-05 3 views
2

Как установить первое значение на null? Я использовал эти коды, но он не работает? Как я установлю placeholder в combobox? Заранее спасибо.set empty on first value in combobox

<select class="ddlASN"></select> 
var result = 'a,b,c,d'; 

$('.ddlASN').html($.map(result.split(','), function(item) { 
    return $('<option></option>').val('').html('')[0].outerHTML 
    return $('<option></option>').val(item).html(item)[0].outerHTML 
}).join('')); 
+0

попробуйте следующее: http://stackoverflow.com/questions/1070828/jquery-add-blank-option-to-top-of-list-and- make-selected-to-existing-dropdown – ChenChi

+0

@ShermaineChaingan привет! вы от PH? :) – Sherlock

+0

да, почему sir? ... –

ответ

2

Вы можете попробовать это.

var result = 'a,b,c,d'; 

// placeholder option 
var dd_content = '<option>-- Select an option --</option>'; 

// add rest of the options 
jQuery.map(result.split(','), function(item) { 
    dd_content += '<option value="'+item+'">'+item+'</option>'; 
}); 

jQuery('.ddlASN').html(dd_content); 

Это предотвратит получение значений после подачи.

Если это не поможет, пожалуйста, сообщите, что на самом деле происходит после отправки формы. Являются ли новые значения присвоены для combobox или нет ...

+0

Большое спасибо! –

+0

Нет проблем вообще^_ ^ – JugalK

0

Как я могу установить первое значение NULL? Я использовал эти коды, но он не работает? Как я установлю placeholder в combobox?

подхода вы можете принять это, а не с помощью html(), который перепишет содержимое HTML при каждом вызове, можно использовать append() добавить все необходимые опции, где вы можете использовать val() для добавления значений параметров и text() добавить отображаемый текст:

var result = 'a,b,c,d'; 
 

 
// placeholder option 
 
var placeholderOption = $('<option></option>').val('null').text('placeholder'); 
 
$('.ddlASN').html(placeholderOption); 
 

 
// add rest of the options 
 
$('.ddlASN').append($.map(result.split(','), function(item) { 
 
    return $('<option></option>').val(item).text(item); 
 
}));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="ddlASN"></select>

Примечание: важно вещь, о которой вы должны знать, заключается в том, что наличие нескольких операторов return не будет работать в JavaScript, поскольку любой return после первого никогда не будет достигнут.

Метод map примет массив и преобразует каждый элемент в зависимости от того, что вы возвращаете из его обратного вызова. Это означает, что вы можете вернуть новый элемент option со значением и текстом, установленным в соответствии с тем, что вам нужно, чтобы не было необходимости возвращать что-либо еще.

+0

, когда я добавляю значение, повторяющееся при отправке –

+0

В этом случае все, что вам нужно сделать, это вызвать '$ ('.ddlASN'). Empty()' перед запуском кода выше каждый раз, когда вы отправляете, и он будет работать – nem035

+0

Или вы можете просто использовать '.html' при добавлении опции-заполнителя. Это перезапишет все, что было там – nem035

1

Попробуйте это:

$(document).ready(function(){ 

    var result = 'a,b,c,d'; 
    var arr = result.split(','); 

    $sel = $(".ddlASN"); 

    $sel.append("<option></option>"); 
    //$sel.append("<option>PlaceHolder</option>"); 

    for (var i =0 ; i < arr.length; i++) { 

     $sel.append("<option>" + arr[i] + "</option>") 

    } 

}) 

Окончательная код:

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
</head> 
 
<body> 
 
    
 
    Select : <select class="ddlASN"></select> 
 
    
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <script> 
 
$(document).ready(function(){ 
 
    
 
    var result = 'a,b,c,d'; 
 
    var arr = result.split(','); 
 
    
 
    $sel = $(".ddlASN"); 
 
    
 
    $sel.append("<option></option>"); 
 
    
 
    for (var i =0 ; i < arr.length; i++) { 
 
     
 
     $sel.append("<option>" + arr[i] + "</option>") 
 
     
 
    } 
 
    
 
}) 
 
    </script> 
 
    </body> 
 
</html>

+0

, когда им добавлено значение, повторяющееся при отправке –