2014-08-01 3 views
0

У меня есть двумерный массив, например, var TZa = new Array("Pacific/Wallis;WFT-12", "Pacific/Wallis;WFT-12")Как изменить SelectedIndex

Первое значение помещается в <select id="stzone"><option></option></select>, второго значения (после запятой) помещается в <input type="text" id="timezone" >

старого кода, который работал правильно, как показано ниже:

function SelChng() { 
    Sel = document.getElementById("stzone"); 
    Inpt = document.getElementById("timezone"); 
    Inpt.disabled = !(Sel.value == "extended"); 
    Inpt.value = TZa[Sel.selectedIndex]; 
} 

Новый код, как показано ниже:

$(document).ready(function() { 
    var input = $("#timezone").attr("disabled", true); 
    $("#stzone").on("change", function() { 
     if ($(this).val() == "extended") { 
      input.attr("disabled", false); 
     } else { 
      input.attr("disabled", true); 
     } 
     input.val() = TZa[(this).selectedIndex]; 
    }); 
}); 

и не меняйте значение от input type="text" согласно массиву.

Пожалуйста, дайте некоторую идею для ремонта моего кода?

+2

Я не понимаю, в чем ваш вопрос? .. – GCallie

+0

Это не то, как вы создаете массивы в JavaScript. 'var TZa = [" Pacific/Wallis; WFT-12 "," Pacific/Wallis; WFT-12 "];'. Не используйте конструктор Array, JS имеет литерал массива, который вы должны использовать вместо этого. –

+1

Двухмерный массив выглядит так: var 2DArray = [[1,2], [3,4]]; ' –

ответ

0

Чтобы сделать второй кусок кода работы, как первый кусок кода, я думаю, что ваш вопрос с JQuery:

input.val() = TZa[(this).selectedIndex]; 

Похоже, он должен быть:

input.val(TZa[this.selectedIndex]); 

Посмотрите, как установить значения с val() по адресу jQuery.

+0

Спасибо. Хорошее решение для меня :-) – ondra15

0

Вы говорите о «первом значении» и «втором значении», поэтому используйте это?

var TZa = [ 
    { area: "Pacific", location: "Wallis", wft: -12 }, 
    { area: "Pacific", location: "Wallis", wft: -12 } 
]; 

А потом ходить ваш массив Тза:

function buildMyData(data, index) { 
    // build new HTML elements with data.area, data.location and data.wft 
} 
TZa.forEach(buildMyData); 

Это не прямой ответ, но он собирается сделать все, что вы действительно делаете (и ваш вопрос очень неясно, на какой то есть), намного проще.

+1

Я хочу заменить эту строку 'Inpt.value = TZa [Sel.selectedIndex];' используя jQuery. Я не могу изменить формат массива – ondra15

+0

, и проблема в том, где? Существует множество примеров того, как получить значение из ''. Это основной Google, для чего вам нужен stackoverflow? –

Смежные вопросы