Возможно, это уже задавалось ранее, или, может быть, есть простой ответ на это решение, но я застрял в настоящее время У меня есть эта форма, которую можно увидеть на http://jsfiddle.net/DS73u/,, где пользователь может ввести координаты 3 различными способами с уникальным именем. Также может быть несколько входов, чтобы пользователь мог добавить больше входов в форму. Я перебираю все входные данные, отмеченные флажками, и сохраняю значения в массиве 2D. Где он хранит, что это за схема и значения координат. Таким образом, пользователь вводит 55.67484 и -86.7685, они сохраняются в массив и могут быть доступны с помощью temp [0] [0] = 55.67484 AND temp [0] [1] = -86.7685.
После этого я хочу разделить каждую группу координат на основе входа. Я сохраняю 2D-массив в свойстве объекта, где ent_name - это имя свойства. Хотя у меня проблема с разделением значений на основе имени входа, я не знаю, как его сравнить, поскольку все значения содержатся в цикле. Может быть, onchange () или change () будут работать в jquery? Значения текстовых полей никогда не меняются за слово ...
$(function() {
/*
This is where the magic happens when you click
the "Preview Map" button
It does several things...
1.Loops through every checkbox in the #entrances
2.Check to see if Entrance name has changed and store it into object with array of coordinates
2.Checks to see if the checkbox is checked
a.Yes
1.We see what checkbox is being checked
to determine how we want to output the data
inputted(Hence the switch)
2.We grab the data from the form and store it
into an array called coordinates
b.No
1.Do nothing
*/
$('#prev_map').click(function() {
//Make sure coordinates is empty before proceeding
coordinates = {};
temp = [];
var ent_name;
//console.log($('#entrances input:checkbox'));
$('#entrances input:checkbox').each(function(){
if (this.checked) {
//console.log($(this).parent('#coords').prevAll('input').val());
//coordinates.push($(this).parent('#coords').prevAll('input').val());
ent_name = $(this).parent('#coords').prevAll('input').map(function() {
console.log(ent_name);
}).get().change(function() {
console.log("We changed");
});
/*
ent_name = $(this).parent('#coords').prevAll('input').map(function() {
return $(this).val();
}).get();
console.log("Entrance Name: " + ent_name);
if (temp_name != ent_name) {
coordinates[temp_name] = temp;
} else {
temp = [];
};
var temp_name = ent_name;
console.log("Temporary Name: " + temp_name);*/
switch(this.name) {
case "dec_coord":
temp.push($(this,'input').next().children('input').map(function() {
return $(this).val();
}).get());
break;
case "deg_coord":
var temp2 = $(this,'input').next().children("input,select").map(function() {
return $(this).val();
}).get().join(";");
//console.log(temp);
temp2 = temp2.toString();
temp2 = temp2.replace(";","°");
temp2 = temp2.replace(";","'");
temp2 = temp2.replace(";","\"");
temp2 = temp2.replace(";",",");
temp2 = temp2.replace(";","°");
temp2 = temp2.replace(";","'");
temp2 = temp2.replace(";","\"");
temp.push(temp2.split(","));
break;
case "utm_coord":
temp.push($(this,'input').next().children('input,select').map(function() {
return $(this).val();
}).get().join(","));
break;
}
} else {
//console.log("wrong");
};
});
$('#dialog').dialog({
width: 500,
height: 400,
open: function() {
//loadMap();
}
});
});
/*
This is the replication of the Entrance Fields
We will limit the number of entrances to 5
*/
var template = $('#entrances .ent_clone:first').clone();
var cloneCount = 0;
var addEntrance = function(){
cloneCount++;
var entrance = template.clone().find(':input').each(function() {
var newID = this.id+cloneCount;
//$(this).prev().attr('for', newID);
this.id = newID;
}).end()
.attr('id', 'ent' + cloneCount)
.appendTo("#ent");
};
$('#addEnt').click(addEntrance);
});