2013-07-09 4 views
1

У меня есть страница редактирования jqGrid, содержащая выбор, с уже заданными параметрами. Проблема в том, что порядок в разных браузерах различен. Firefox и некоторая версия Chrome меняют исходный порядок (исходный по содержимому опций) на заказ по значению параметра. Вот код JavaScript:Редактирование формы jqGrid для выбора заказа

jQuery('#jqgridDM').GridUnload(); 
jQuery('#jqgridDM').jqGrid({ 
    'url': '/sco-intra/dichiarazioneM/jqgridlist/362.html', 
    'datatype': 'json', 
    'mtype': 'POST', 
    'colNames': ['Deposito', 'Societa Propr Prodotto', 'Prodotto Lib', 'Quantita'], 
    'colModel': [ 
     { 'name': 'deposito_id', 'index': 'deposito_id', 'width': '100', 'editable': true, 'edittype': 'select', 'editoptions': { 'value': { '242': '11009 - LUDOIL (DARM PETROLI) - NOLA'} }, 'formoptions': { 'label': 'Deposito'} }, 
     { 'name': 'societa_propr_id', 'index': 'societa_propr_id', 'width': '100', 'editable': true, 'edittype': 'select', 
      'editoptions': { 
       'value': { 
        '1231': 'A.F. PETROLI', 
        '1000': 'A2A', 
        '706': 'A2A TRADING', 
        '1001': 'ABD AIRPORT S.P.A.', 
        '1107': 'ABRUZZO COSTIERO', 
        '1002': 'ACQUAPOWER', 
        '1244': 'ACTV SPA', 
        '1108': 'ADRIATICA PETROLI', 
        '1003': 'AERELBA /ALATOSCANA', 
        '1004': 'AEROPORTO DI REGGIO EMILIA', 
        '1005': 'AERORIFORNIMENTI TIRRENICA A.R.T.', 
        '1006': 'AEROSERVICE', 
        '607': 'AGENZIA CARBONI', 
        '1007': 'AGRIPETROLI', 
        '1008': 'AGRITERMO', 
        '264': 'AIR B.P.ITALIA', 
        '1109': 'AL.MAR. SRL', 
        '1009': 'ALBA DE BIASE & C. SAS', 
        '1010': 'ALBERGO PETROLI', 
        '1012': 'ALI TRASPORTI AEREI ATA S.P.A.', 
        '1011': 'ALIDAUNIA', 
        '48': 'ALMA PETROLI', 
        '263': 'ALPHA TRADING', 
        '1110': 'ALPIGAS', 
        '1111': 'AMALFI BUNKERN', 
        '1233': 'AMBROGIO MORO SPA', 
        '3': 'API', 
        '1013': 'ARADRIATICA S.R.L.', 
        '60': 'ARCOLA PETROLIFERA', 
        '1230': 'AREAGAS', 
        '1174': 'ARI CHIMICA', 
        '1014': 'ATA ALISERVIZI S.P.A.', 
        '1112': 'ATESINA GAS', 
        '501': 'AUTOGAS MERIDIONALE', 
        '502': 'AUTOGAS NORD', 
        '1248': 'AUTOGAS NORD VENETO EMILIANA SRL', 
        '503': 'AUTOGAS OROBICA', 
        '1207': 'AUTOGAS RIVIERA SRL', 
        '1175': 'AUTOPROFI ITALIA', 
        '1015': 'AVA AEROPORTO VILLANOVA D\'ALBENGA', 
        '1016': 'AVERSANA PETROLI', 
        '506': 'AVIONGAS', 
        '1176': 'AZELIS ITALIA', 
        '55': 'B.P. ITALIA', 
        '1017': 'B.P. ITALIA ex Castrol', 
        '1105': 'B.P.P. SPA', 
        '504': 'BADANO GAS', 
        '1018': 'BARTOLOMEO LA CAVA COMBUSTIBILI SRL', 
        '1019': 'BASALTI ENERGIA', 
        '1020': 'BASILE PETROLI', 
        '1203': 'BELLEMO CARBURANTI', 
        '1113': 'BELLINI SRL', 
        '1114': 'BELLO CARBURANTI', 
        '1115': 'BENVENUTI ULISSE', 
        '505': 'BEYFIN', 
        '1021': 'BLACK SERVICE S.R.L.', 
        '1022': 'BLANCO PETROLI', 
        '1023': 'BLOM CGR', 
        '1201': 'BOMAG ITALIA', 
        '1024': 'BORDANDINI IGINO', 
        '507': 'BRAGAS', 
        '1116': 'BRENNTAG SPA', 
        '1025': 'BUNKERAGGI AEREI NORDEST', 
        '1117': 'BUNKERAGGI SRL', 
        '508': 'BUTANGAS', 
        '625': 'BUZZI UNICEM', 
        '47': 'CABOT ITALIANA', 
        '1026': 'CALOR SERVICE SRL', 
        '1027': 'CAMASTRA PETROLI S.P.A.', 
        '1028': 'CAMASTRA PETROLI S.R.L.', 
        '1029': 'CAMER PETROLEUM EUROPA SRL', 
        '1118': 'CAMPISI MARIA', 
        '1177': 'CANADA INTERN. SRL', 
        '1030': 'CARBOIL', 
        '1119': 'CARBOTRADE GAS SPA', 
        '1120': 'CARBURANTI LUBRIFICANTI ARGENTARIO', 
        '1243': 'CARMELO MARULLO &C SAS', 
        '1121': 'CASTMAR SRL', 
        '603': 'CEMENTERIA DI MONSELICE', 
        '606': 'CEMENTI ROSSI', 
        '600': 'CEMENTIR', 
        '602': 'CEMENTIZILLO', 
        '1122': 'CENTRO ALGHEMAR', 
        '1123': 'CO. E CI. TRANSOIL', 
        '626': 'COLACEM', 
        '211': 'COLUMBIAN CARBON EUROPA S.R.L.', 
        '88': 'CONQORDOIL S.R.L.', 
        '1215': 'CONSULENZE E GESTIONI', 
        '1125': 'COOP. MUTUA ASSISTENZA PESCATORI', 
        '1218': 'COOP. PESCATORI DELTA PADANO', 
        '1126': 'COOPERATIVA PESCATORI DI PILA', 
        '1124': 'COSTANTIN SPA', 
        '1032': 'COSTIERI D\'ALESIO', 
        '1247': 'COSTIERO GAS LIVORNO', 
        '1178': 'CTS SRL', 
        '1033': 'D\'AIETTI PETROLI', 
        '1241': 'DALMARE SPA', 
        '1034': 'DAMA', 
        '1127': 'DAMATO CARBURANTI SRL', 
        '1035': 'DECAL', 
        '1179': 'DELPHI ITALIA AUTOMOVE SRL', 
        '1036': 'DEPOSITI COSTIERI TRIESTE', 
        '1232': 'DEPOSITO DI ARCOLA', 
        '35': 'DI PROPERZIO COMMERCIALE SRL', 
        '1246': 'DINAGAS', 
        '1236': 'DIPOGAS', 
        '1037': 'DISMA', 
        '1128': 'DITTA GIANICO ROSA', 
        '405': 'DP LUBRIFICANTI', 
        '1038': 'DREOSSO S.R.L.', 
        '42': 'E.ON PRODUZIONE SPA', 
        '407': 'ECOFOX', 
        '1252': 'ECOFUEL', 
        '62': 'EDIPOWER S.P.A.', 
        '1039': 'EDISON SPA', 
        '1180': 'EICO NOVACHEM SRL', 
        '1129': 'EMBRACO EUROPE', 
        '43': 'ENEL PRODUZIONE SPA', 
        '510': 'ENERGAS', 
        '1': 'ENI DIV.R&M ex AGIP', 
        '1040': 'EOLIAN BUNKER', 
        '1073': 'EREDI ORSI AMOS', 
        '1080': 'ERG OIL SICILIA SRL', 
        '45': 'ERG SPA', 
        '7': 'ESSO ITALIANA SRL', 
        '204': 'EURALLUMINA', 
        '1041': 'EUROPAM', 
        '1130': 'F. DI CESARE RISCALDAMENTI SAS', 
        '1134': 'F.LLI D\'ADDATO SNC', 
        '1042': 'F.LLI PREVEDEL', 
        '1131': 'FANIZZA FRANCESCO', 
        '1043': 'FANTASIA PETROLI', 
        '1181': 'FATI SRL', 
        '1182': 'FEBI ITALIA SRL', 
        '513': 'FIAMMA 2000', 
        '1226': 'FINCANTIERI SPA', 
        '1132': 'FIORGAS', 
        '1044': 'FIRMIN EX PO TRASPORTI', 
        '1183': 'FO. IN SNC', 
        '1184': 'FORTRON ITALIA SNC', 
        '1045': 'FOX PETROLI', 
        '1133': 'FRATELLI SINAGRA', 
        '514': 'FRIULANA GAS', 
        '68': 'FUCHS LUBRIFICANTI S.R.L.', 
        '1135': 'GAETANO SALVEMINI', 
        '1046': 'GAFFOIL', 
        '1136': 'GARDNER DENVER', 
        '1137': 'GAS ADIGE LEGNAGO', 
        '53': 'GAZPROMNEFT', 
        '408': 'GDR', 
        '1047': 'GE.AR.TO.', 
        '1185': 'GE.FA. SRL', 
        '1048': 'GEAC', 
        '1049': 'GETOIL SRL', 
        '1138': 'GETRASPED SRL', 
        '1050': 'GHIGI SAS', 
        '1225': 'GIULIANA BUNKERAGGI SPA', 
        '1228': 'GM GAS SRL', 
        '1204': 'GOIL PETROLI', 
        '515': 'GOLDENGAS', 
        '1051': 'GRUPPO DISTRIBUZIONE PETROLI', 
        '33': 'GRUPPO VERSALIS', 
        '1139': 'GT NAUTICA', 
        '1186': 'HARLEY DAVIDSON ITALIA SRL', 
        '1187': 'HENKEL ITALIA', 
        '608': 'HOLCIM ITALIA (Comabbio-VA)', 
        '604': 'HOLCIM ITALIA (Merone-CO)', 
        '1251': 'I.D.I.R. SPA', 
        '1234': 'I.RO.P', 
        '1052': 'I.SE.CO.L.D.', 
        '78': 'IES', 
        '1053': 'IG OPERATION AND MAINTANANCE', 
        '21': 'ILVA TARANTO', 
        '1189': 'INTERFLON ITALIA', 
        '1242': 'INTERPORTO RIVALTA SCIVIA', 
        '516': 'IPEM', 
        '14': 'IPLOM S.P.A.', 
        '41': 'ISAB', 
        '410': 'ITAL BI OIL', 
        '411': 'ITAL GREEN OIL', 
        '601': 'ITALCEMENTI', 
        '523': 'ITALCOST SRL', 
        '12': 'ITALIANA PETROLI S.P.A.', 
        '1054': 'IVI PETROLIFERA', 
        '1056': 'J-PETROL', 
        '1055': 'J.V. ORIO', 
        '11': 'KUWAIT PETROLI IT. S.P.A.', 
        '1057': 'LA 91 PETROLI SRL', 
        '1140': 'LA PETROLIFERA ITALORUMENA', 
        '1058': 'LA SUD PETROLI', 
        '517': 'LAMPOGAS', 
        '1210': 'LAMPOGAS EMILIANA', 
        '1212': 'LAMPOGAS FRIULI', 
        '1209': 'LAMPOGAS LOMBARDA', 
        '1208': 'LAMPOGAS NORD', 
        '609': 'LAVORAZIONI ILVA', 
        '1059': 'LEGNARO CARBURANTI', 
        '1141': 'LEMMA SAVINO CARLO', 
        '1060': 'LEVORATO MARCEVAGGI', 
        '528': 'LIQUIGAS', 
        '1250': 'LITASCO', 
        '1061': 'LOM PETROLCHIMICI', 
        '612': 'LUCCHINI (stab. Piombino)', 
        '610': 'LUCCHINI (stab. Trieste 1)', 
        '611': 'LUCCHINI (stab. Trieste 2)', 
        '1062': 'LUDOIL ENERGIA SRL', 
        '44': 'LUKOIL ITALIA SRL', 
        '1190': 'LUMAR ITALIA', 
        '1191': 'MACON RESEARCH', 
        '518': 'MAGIGAS', 
        '1223': 'MAKITA SPA', 
        '1143': 'MARBO ITALIA', 
        '1144': 'MARIA AVERSANO', 
        '1145': 'MARINE SERVICE', 
        '150': 'MAXCOM BUNKER SRL', 
        '22': 'MAXCOM PETROLI', 
        '1063': 'MAXOIL SPA', 
        '1188': 'MCD ITALIA', 
        '1146': 'ME.COMB. SPA', 
        '1064': 'MEDIASERVICE ITALIA', 
        '1065': 'MERIDIONALE PETROLI', 
        '1192': 'MIKU CHEMIE ITALIA', 
        '1147': 'MILANESE PETROLI', 
        '2000': 'MISE DEPOSITI ESTERI', 
        '1213': 'MITO TRASPORTI', 
        '1205': 'MMR', 
        '1219': 'MOBILITY POINT', 
        '1214': 'MONGAS', 
        '1066': 'MOSCUZZA VINCENZO & C.', 
        '412': 'MYTHEN', 
        '1148': 'NAPPI', 
        '1067': 'NAUTILIA S.R.L.', 
        '1068': 'NAUTILUS CARBURANTI', 
        '1220': 'NORAUTO ITALIA', 
        '1149': 'NOVA STILMOIL', 
        '413': 'NOVAOL', 
        '1150': 'NUOVA C.L.A.R.', 
        '1069': 'NUOVA LIBARNA', 
        '1070': 'NUZZI PETROLI', 
        '336': 'OCS-IT', 
        '414': 'OIL B.', 
        '1071': 'OLEOTECNICA SPA', 
        '1072': 'OPEC ORGANIZZAZIONE PETROLIFERA CAMPANA', 
        '1151': 'OROGAS', 
        '1142': 'OVEGAS SRL', 
        '1193': 'P A SERVICE', 
        '1152': 'PANTA DISTRIBUZIONE', 
        '1221': 'PANTA DISTRIBUZIONE SPA', 
        '1074': 'PETRA', 
        '1075': 'PETROL FUEL', 
        '1153': 'PETROLGAS', 
        '1076': 'PETROLIG SRL', 
        '1202': 'PETROLUBE', 
        '1194': 'PETRONAPHTE', 
        '1106': 'PETRONAS LUBRICANTS DIV. RONDINE', 
        '59': 'PETRONAS LUBRIFICANTS', 
        '1077': 'PETROVEN SRL', 
        '1078': 'PINTA ZOTTOLO', 
        '1079': 'PIR PETROLI', 
        '1154': 'PROVVEDITORIA MARITTIMA DI CAORLE', 
        '519': 'PUBLIGAS', 
        '1104': 'PVB FUELS', 
        '10': 'Q8 QUASER SRL', 
        '1155': 'QUAKER ITALIA', 
        '1227': 'R.A.I.', 
        '1081': 'RAFFINERIA DI MILAZZO', 
        '82': 'RAFFINERIA DI ROMA SPA', 
        '1082': 'RAMOIL', 
        '1249': 'RAMOIL TRADING SRL', 
        '15': 'REPSOL', 
        '1156': 'RESTIANI SPA', 
        '1157': 'RILUB', 
        '1217': 'RIVA MARE', 
        '1253': 'ROMA BITUMI SRL', 
        '1158': 'RUM ANTONIO E UMBERTO', 
        '1195': 'RVN GROUP', 
        '605': 'SACCI', 
        '1084': 'SACCNE PETROLI', 
        '529': 'SAN MARCO GAS LOGISTICA E SERVIZI SRL', 
        '32': 'SAN MARCO PETROLI', 
        '19': 'SARAS', 
        '1235': 'SARLUX (saras)', 
        '1085': 'SARPOM', 
        '1086': 'SASE S.P.A.', 
        '301': 'SASOL', 
        '1087': 'SASOL ITALY', 
        '1196': 'SAVINI CLAUDIO E FIGLI', 
        '1088': 'SCAT PUNTI VENDITA', 
        '1159': 'SERAFINI', 
        '1089': 'SERAM SPA', 
        '1160': 'SERVIZIO MARE SRL', 
        '1090': 'SHELL ITALIA AVIAZIONE S.P.A.', 
        '69': 'SHELL ITALIA S.P.A.', 
        '1198': 'SIA EURO DELFIN INDUSTRY', 
        '1091': 'SICILIANA CARBOLIO', 
        '1092': 'SIGEMI', 
        '1093': 'SILVIA & FIGLI SRL', 
        '1239': 'SIPIC', 
        '1094': 'SKYTANKING', 
        '1095': 'SO.COM.CI', 
        '1197': 'SO.IT.EM', 
        '1083': 'SOCIETA ENIPOWER FERRARA SRL', 
        '1161': 'SOCIETA\' COOPERATIVA TRA LAVORATORI DELLA PESCA', 
        '1162': 'SOCIETA\' INTERNAZIONALE LUBRIFICANTI SLI', 
        '521': 'SOCIETA\' ITALIANA GAS LIQUIDI SPA', 
        '520': 'SOCOGAS', 
        '1031': 'SODECO', 
        '1096': 'SOLAR', 
        '1097': 'SOLDA\' VLADIMIRO SP.A.', 
        '1163': 'SOVEGAS', 
        '1222': 'STIHL SPA', 
        '525': 'SUDGAS SPA', 
        '1237': 'SUPERBA SRL', 
        '1098': 'SYNDIAL', 
        '1224': 'SYNTHESIS CHIMICA', 
        '1164': 'SYNTHESIS SPA', 
        '1099': 'TAG BOLOGNA SRL', 
        '2': 'TAMOIL ITALIA', 
        '1165': 'TECNIGAS', 
        '1103': 'TEK SERVICE SPA', 
        '1211': 'TERMOGAS', 
        '1166': 'TESTONI SRL', 
        '79': 'TIRRENO POWER', 
        '13': 'TOTAL AVIAZIONE ITALIA', 
        '1199': 'TOTAL GLASS LUBE GMBH', 
        '46': 'TOTALERG', 
        '511': 'TOTALGAZ', 
        '1167': 'TRAMONTANA PETROLI', 
        '1168': 'TRANSPORT & TRADING', 
        '1169': 'TRANSPORT SAS DI TAULA V.', 
        '1245': 'TUNAP', 
        '526': 'ULTRAGAS CENTRO MERIFIONALE', 
        '527': 'ULTRAGAS TIRRENIA (Sardegna)', 
        '1200': 'UNISIDA EUROPLATING', 
        '1229': 'UNIVAR SPA', 
        '1238': 'VALGAS SRL', 
        '1100': 'VALTER DEL DO\'', 
        '1170': 'VELLETRI LUIGI', 
        '1101': 'VENETA COMBUSTIBILI S.R.L.', 
        '1240': 'VILMA OIL SRL', 
        '1171': 'VISCOL SPA', 
        '242': 'VISCOLUBE ITALIANA', 
        '1172': 'WUERTH SRL', 
        '1173': 'ZF SACHS ITALIA' 
       }, 
       'defaultValue': 'LUDOIL ENERGIA SRL' 
      }, 
      'formoptions': { 'label': 'Societa proprietaria' } 
     }, 
     { 'name': 'prodotto_lib_id', 'index': 'prodotto_lib_id', 'width': '100', 'editable': true, 'edittype': 'select', 
      'editoptions': { 
       'value': { 
        '1': '1 - Petrolio Greggio', 
        '2': '2 - LGN', 
        '3': '3 - Semilavorati (prodotti base di raffineria)', 
        '4': '4 - Altri Idrocarburi', 
        '5': '5 - Gas di raffinerie', 
        '6': '6 - Etano', 
        '7': '7 - GPL', 
        '8': '8 - Nafta', 
        '9': '9 - Benzina', 
        '10': '10 - Benzina Avio', 
        '11': '11 - Jet Fuel tipo Benzina', 
        '12': '12 - Jet Fuel tipo Cherosene', 
        '13': '13 - Altro kerosene', 
        '14': '14 - Gasolio', 
        '15': '15 - Gasolio autotrazione', 
        '16': '16 - Gasolio riscaladamento e altri gasoli', 
        '17': '17 - Olio combustibile BTZ', 
        '18': '18 - Olio combustibile ATZ', 
        '19': '19 - Acqua ragia minerale e benzine speciali', 
        '20': '20 - Lubrificanti', 
        '21': '21 - Bitume', 
        '22': '22 - Cere paraffiniche', 
        '23': '23 - Coke di Petrolio', 
        '24': '24 - Biocarburante per gasolio', 
        '25': '25 - Biocarburante per benzina' 
       } 
      }, 
      'formoptions': { 'label': 'Prodotto' } 
     }, 
     { 'name': 'quantita', 'index': 'quantita', 'width': '40', 'editable': true, 'editrules': { 'number': true }, 'align': 'right' } 
    ], 
    'viewrecords': true, 
    'autowidth': true, 
    'editurl': '/sco-intra/dichiarazioneM/jqgridedit/362.html', 
    'height': 'auto', 
    'footerrow': true, 
    'userDataOnFooter': true, 
    'rowNum': '30', 
    'grouping': true, 
    'groupingView': { 'groupField': ['deposito_id'], 'groupText': ['<b>{0} - {1} Item(s)</b>'] }, 
    'pager': '#jqgridDM_pager' 
}).navGrid('#jqgridDM_pager', 
    { 'edit': true, 'add': true, 'del': true, 'search': false, 'view': false }, 
    { 'afterSubmit': processAddEditDel, 'editData': { 'lstUpd': getLastUpdate }, 'width': '600', 'closeAfterEdit': true, 'viewPagerButtons': false, 'beforeShowForm': checkRowId, 'afterShowForm': manageDate }, 
    { 'afterSubmit': processAddEditDel, 'editData': { 'lstUpd': getLastUpdate }, 'width': '600', 'clearAfterAdd': true, 'beforeShowForm': changeDisabled, 'afterShowForm': manageDate }, 
    { 'afterSubmit': processAddEditDel, 'delData': { 'lstUpd': getLastUpdate }, 'width': '600', 'beforeShowForm': checkRowId } 
); 

Если проверить этот код, вы увидите, что IE и Safari сохраняют порядок вариант, в то время как FF и Chrome изменить его. Может, дайте мне какой-нибудь намек? Благодаря

+0

Вы должны лучше форматировать код, который вы разместили. Код, который состоит из * одной строки *, может быть не совсем прочитан людьми. – Oleg

+0

Мне очень жаль. Большое спасибо за вашу помощь – Angelinux

+0

Если вы используете selects с большим количеством элементов, вам может быть интересно использовать плагин [select2] (http://ivaynberg.github.io/select2/). См. [Ответ] (http://stackoverflow.com/a/19404013/315935) и [этот] (http://stackoverflow.com/a/19427444/315935) (см. [Demo] (http://www.ok-soft-gmbh.com/jqGrid/usageformetterselect2.htm) в конце ответа) – Oleg

ответ

2

Я полагаю, что причина различного порядка вариантов выбора существует, потому что вы используете объект форму editoptions.value:

editoptions: { 
    value: { 
     '1231': 'A.F. PETROLI', 
     '1000': 'A2A', 
     '706': 'A2A TRADING', 
     '1001': 'ABD AIRPORT S.P.A.', 
     ... 
     '1172': 'WUERTH SRL', 
     '1173': 'ZF SACHS ITALIA' 
    } 
} 

jqGrid просто перечислить свойство объекта с относительно for (key in valuesObject) {...} петли (см the source code) , Порядок элементов объектов зависит от используемого механизма JavaScript. Таким образом, у вас может быть другой порядок опций, включенных в сгенерированный <select>.

Я бы порекомендовал вам использовать либо строку формы с : и ; в качестве разделителей (вы можете использовать separator и delimiter, если вам нужно заменить : и ; к другим символов) или даже лучше использовать dataUrl. Ответ от dataUrl может быть <select> со всеми вариантами. Вы можете использовать buildSelect дополнительно, если ответ от dataUrl не является фрагментом HTML и преобразовывает ответ на <select> внутри функции обратного вызова buildSelect.

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