Загружена моя библиотека jq jq_min_3.1.1.js. Если дело, брозер IE11. мой скрипт находится чуть ниже формы в html body.4 выбора должны быть записаны в текстовое поле при каждом правильном изменении
Что мне нужно: Последнее состояние 4-х выборов должно быть записано в текстовое поле сразу после каждое изменение в любом из вариантов.
мое испытание последнее состояние:
http://jsbin.com/comolifeyo/1/edit?html,js,console,output
Каждый выбор имеет <option value="">select</option>
общего. например A | - | X | -
средства, выбор 2 & 4 не были выбраны или был сделан повторный выбор для отмены предыдущего выбора (не для выбора).
Очень важно, что если Вариант1 был выбран в качестве , но затем выбран в качестве выберите (не выбрано); то текстовое поле должно измениться к -
Я нормально с PHP, но я не знаю, JQuery. Код ниже - это адаптация из кодов, которые я нашел из SO. Я сделал F12, и консоль не выдала никаких ошибок, однако моя текстовая область пуста.
То, что я пробовал, приведено ниже. Кажется, что $imploded = $arr_out.join(' | ');
не задано, так как $ arr_out в этой точке не задано. (консольный журнал в этой точке ничего не дает).
Что не так? Почему это неправильно? Будет ли решение быть crossbrowser, если библиотека jq в порядке?
благодаря
<form method="post" action="#" name="myform" id="myform">
<select name="select1" id="select1" size="1">
<option value="">select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
<select name="select2" id="select2" size="1">
<option value="">select</option>
<option value="1">q1</option>
<option value="2">q2</option>
<option value="3">q3</option>
</select>
<select name="select3" id="select3" size="1">
<option value="">select</option>
<option value="1">X</option>
<option value="2">Y</option>
<option value="3">Z</option>
</select>
<select name="select4" id="select4" size="1">
<option value="">select</option>
<option value="1">q7</option>
<option value="2">q8</option>
<option value="3">q9</option>
</select>
<textarea name="first_paste" id="first_paste" disabled></textarea>
</form>
<script>
$(document).ready(function() {
var $fields = ['#select1','#select2','#select3','#select4'];
var $arr_out = [];
$.each($fields, function(key,val)
{
$(val).change(function()
{
if($(val).val() === "")
{
$arr_out[key] = '-';
// console.log($arr_out.join(' | '));
}
else
{
$arr_out[key] = ($(val + ' option:selected').text());
// console.log($arr_out.join(' | '));
}
});
})
// console.log($arr_out.join(' | '));
$imploded = $arr_out.join(' | ');
$('#first_paste').text($imploded);
});
</script>
я писал в вопрос, что ** Очень важно, что если Вариант1 был выбран в качестве, но затем выбран в качестве выбора (не выбрано); то текстовое поле должно измениться с A на -. ** Вы удалили инструкции 'if else'. Пожалуйста, внимательно прочитайте вопросы. –
Обновленный приведенный выше код и вот рабочая скрипка http://jsfiddle.net/o2gxgz9r/2522/ – Krishna9960
Большое вам спасибо. ** Можете ли вы также рассказать мне, что не так в моем коде? ** Мне не нравится только копировать-вставить рабочий код и двигаться дальше. –