2016-07-18 4 views
0

У меня есть два выбора окна, и один скрытый текстовый блокПолучить строку, но не значение из выпадающего опции списка выберите

<select name="name" id="name" class="form-control input-sm"> 
    <option value="">- Choose a Name -</option> 
<?php foreach($name as $n) { ?> 
    <option value="<?php echo $n->id_name;?>"><?php echo $n->name;?></option> 
<?php } ?> 
</select> 

<select name="status" id="status" class="form-control input-sm"> 
    <option value="">- Choose a Status -</option> 
<?php foreach($status as $s) { ?> 
    <option value="<?php echo $s->id_status;?>"><?php echo $s->name;?></option> 
<?php } ?> 
</select> 

<input type="hidden" id="message" name="message" value=""> 

То, что я знаю, это сценарий, как этот

function inputKelurahan() 
{ var name = document.getElementById("name"); 
    var status = document.getElementById("status"); 
    document.getElementById("message").defaultValue = name.value + status.value; 
} 

Of Конечно, сообщение будет $ id_name + $ id_status. Как конкретизировать $ name + $ status?

Спасибо заранее,

ответ

2

Это звучит, как вы хотите, чтобы текст внутри выбранной опции. Затем вы можете сначала получить selectedIndex, а затем innerHTML для опции.

Ниже приведен простой фрагмент, содержащий фрагменты кода.

function inputKelurahan() 
 
{ 
 
    var name = document.getElementById("name"); 
 
    var status = document.getElementById("status"); 
 
    var nameInnerHtml = name.options[name.selectedIndex].textContent; // using textContent as mentioned by james.brndwgn in comments. 
 
    var statusInnerHtml = status.options[status.selectedIndex].textContent; 
 
    alert("Name is: " + nameInnerHtml + ". Status is: " + statusInnerHtml); 
 
}
<select name="name" id="name" class="form-control input-sm"> 
 
    <option value="">- Choose a Name -</option> 
 
    <option value="Value1">Name 1</option> 
 
    <option value="Value2">Name 2</option> 
 
    <option value="Value3">Name 3</option> 
 
</select> 
 

 
<select name="status" id="status" class="form-control input-sm"> 
 
    <option value="">- Choose a Status -</option> 
 
    <option value="StatusValue1">Status 1</option> 
 
    <option value="StatusValue2">Status 2</option> 
 
    <option value="StatusValue3">Status 3</option> 
 
</select> 
 

 
<button onclick="inputKelurahan()">Click me!</button>

+0

Как @smoksnes указывает innerHTML будет работать. Хотя для извлечения текста вы должны использовать 'textContent', поскольку он быстрее и избегает возможных проблем XSS. Ссылка: https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#Differences_from_innerHTML –

+0

@ james.brndwgn - Спасибо. Я отредактировал свой ответ. Хорошая находка. – smoksnes

0
function inputKelurahan() 
{ var name = document.getElementById("name"); 
    var status = document.getElementById("status"); 
    document.getElementById("message").value = name.selectedIndex.value + status.selectedIndex.value; 
} 
+0

Пожалуйста, отредактируйте с дополнительной информацией. Только код и «попробуйте» ответы не приветствуются, поскольку они не содержат содержимого, доступного для поиска, и не объясняют, почему кто-то должен «попробовать это». – Paritosh

0

Вы должны попробовать это

function inputKelurahan() 
{ 
    var name = $('#name option:selected').text(); 
    var status = $('#status option:selected').text(); 
    alert("Name is: " + name + ". Status is: " + status); 
} 
Смежные вопросы