Определите тип ввода формы по ее идентификатору, возвращенному в столбцах JSON - PullRequest
0 голосов
/ 16 октября 2010

Я возвращаю данные через JSON и пытаюсь выполнить цикл по набору данных JSON для динамического заполнения формы.Мне нужно сослаться на конкретное поле TYPE (выберите, текст, флажок и т. Д.) Через атрибут id этого поля.Атрибут id, с которым я сопоставляюсь, проходит через столбцы JSON.т.е. каждое значение столбца в JSON соответствует атрибуту ID поля формы.Используя это значение столбца, мне нужно выяснить, каково его соответствующее поле формы TYPE, чтобы я знал, как обрабатывать заполнение этого поля, т.е. если это поле выбора, вставка отличается от текстовых полей и т. Д. Эточто у меня так далеко.Он просто отлично заполняет текстовые поля (потому что не проверяет тип поля), но мне нужна помощь в доступе и заполнении флажков, селекторов, ckeditor и т. Д.

JSON

{"COLUMNS":["RECORD_ID","USER_ID","PRODUCT_NAME","MODEL_NUMBER","KEYWORDS","CATEGORIES","PRODUCT_GROUP_ID","DESCRIPTION","ORIGIN","SHIPPING_PORTS","MOQ","MOQ_UNIT","FOB_PRICE_CURRENCY","FOB_PRICE","LEAD_TIME","CAPACITY","CAPACITY_UNIT","SAMPLE_CURRENCY","SAMPLE_PRICE","SAMPLE_LEAD_TIME","PACKING","STANDARDS","SHIP_SINGLE","SINGLE_LEAD_TIME","PAYMENT_TERMS","SHOW_LIVE","MAKE_SELL_OFFER","RECEIVE_ALERTS","ALERT_KEYWORDS","BRAND_NAME","IMAGE1","IMAGE2","IMAGE3","IMAGE4","IMAGE5","IMAGE6","IMAGE7","IMAGE8","DOCUMENT1","DOCUMENT2","EXPIRY_DATE","CREATED_DATE","UPDATED_DATE","EXPIRED_FLAG","DISABLED"],"DATA":[[2,18,"Product Title "," * Model Number","Keywords","",17,"<p>\r\n\tsdadsafsasdasdasdasd<\/p>",0.0," \tShipping Ports","Minimum Order (MOQ)","Piece\/s","EUR","Please Enquire","MOQ Lead Time","Monthly Production Capacity","Piece\/s","EUR","Sample Price","Sample Lead Time","According to your requirements","Standards Compliance (e.g. cUPC, UPC, UL)",true,"Lead Time for single unit","L\/C,T\/T,D\/A",true,true,true,"bathroom vanities, bathroom mirrors, tiles, faucets",null,"17431~Sacred-Heart-of-Jesus-Posters.jpg","","","","","","","","","",null,"October, 09 2010 00:00:00","October, 13 2010 00:00:00",false,false]]}

JQUERY CODE

var product_id = $("#product_id").val();

$.getJSON("/cfcs/main.cfc?method=getProducts&returnformat=json",{"product_id":product_id},function(res,code) {
 //loop over each row
 for (i = 0; i < res.DATA.length; i++) {
  //loop over each column
  for (j = 0; j < res.DATA[i].length; j++) {
   var field = res.COLUMNS[j].toString().toLowerCase(); 
   var value = res.DATA[i][j].toString();
   // Here I want to check field type so I know how to insert data. But, I'm not sure how to go about it. Following is pretty much just pseudo code...

   if(field){    
    if (field.type == 'checkbox' && value == 1) {
     field.checked = true;
    }else if(field.type == 'select'){
     var options = $("#" + field).attr('options');
     if(options.length == 0){
      options[options.length] = new Option(value, field, true, true);
     }else{
      $("#" + field).val(value);
     }
    }else if(field.type == 'textarea'){
     CKEDITOR.instances[field].setData(value)
    }else {
     $("#" + field).val(value);
    }
   }
  }
 }
});

1 Ответ

5 голосов
/ 16 октября 2010

Если field был объектом, то вы должны делать это:

$('#' + field.id)...

Но когда вы получаете значение из JSON, это строка. Так что вы должны делать это:

$('#' + field).attr('type')

а не

field.type
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...