использование jQuery для установки содержимого в tinyMCE, когда данные поступают из xml - PullRequest
1 голос
/ 30 декабря 2011

У меня есть раскрывающееся меню, при изменении которого мне нужно установить содержимое в редакторе tinyMCE, мне нужно выяснить, как сравнить выбранный параметр раскрывающегося списка и тег xml, чтобы я мог установитьзначение.

вот то, что я имею до сих пор.

http://jsfiddle.net/S6Eqq/25/

Не уверен, что есть лучший способ добиться этого.

1 Ответ

2 голосов
/ 30 декабря 2011

Если это поможет вам, вы должны получить значение вашего выпадающего списка, например:

value = $('#country option:selected').val();

А твой код ...

var xml = '<xmlroot><nodes><id>US</id><desc>I am in the USA Description</desc></nodes><nodes><id>FR</id><desc>I am in the French Description</desc></nodes><nodes><id>ES</id><desc>I am in the Spain Description</desc></nodes></xmlroot>';


$(function() {
    tinyMCE.init({
        mode:'textareas'
    });

    $("#country").change(function() {
       loadText();
    });

    function loadText() {
        //In this example you fetch them from the var xml. Later on you can fetch them through a get() function.
        //$.get('file.xml',{}, function(xml) {
         var value = $("#country option:selected").val();
            $('nodes',xml).each(function() {
                //Get id of selected XML node
                id = $(this).find("id").text();
                //Get description of selected XML node
                desc = $(this).find("desc").text();
                if (value != "") {
                   if (id.toLowerCase() == value.toLowerCase()) {
                       tinyMCE.activeEditor.setContent(desc);
                   }
                }
            });

        //});
    }
});

Таким образом, вам не нужно извлекать значение при срабатывании события change() в раскрывающемся списке.

Вы можете просто получить доступ к выбранному значению в вашем методе function loadText(), используя $('#country option:selected').val();.

Итак:

var value = $('#country option:selected').val();
$.get('file.xml',{}, function(xml) {
  $('nodes',xml).each(function() {
     id = $(this).find("id").text();
     desc = $(this).find("desc").text();
     if (id.toLowerCase() == value.toLowerCase()) { 
        tinyMCE.activateEditor.setContent(desc);
     }
  });
});

Обратите внимание, что вы получили атрибуты coun и description вашего XML, хотя они не существуют. Вы определили их как id и desc в своей переменной.

Во-вторых, вы никогда не запускаете свой метод $.get(). Таким образом, я сделал это, поместив это в function loadText() { ... }, который я запускаю при изменении выбора страны.

Смотрите пример работы здесь: http://jsfiddle.net/S6Eqq/32/

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