<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>天生我才必有用 &#187; AjaxForm</title>
	<atom:link href="http://ray.imiddle.net/tag/ajaxform/feed/" rel="self" type="application/rss+xml" />
	<link>http://ray.imiddle.net</link>
	<description>狂人的成长史</description>
	<lastBuildDate>Thu, 17 Nov 2011 01:01:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>AjaxForm和tinyMCE</title>
		<link>http://ray.imiddle.net/2008/01/ajaxform-and-tinymce/</link>
		<comments>http://ray.imiddle.net/2008/01/ajaxform-and-tinymce/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 06:39:56 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[AjaxForm]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[TinyMCE]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/2008/01/17/ajaxform-and-tinymce/</guid>
		<description><![CDATA[AjaxForm是基于JQuery可以实现Form Ajax的提交的一个组件，而TinyMCE是另一个使用javascript来实现Rich Editor的组件。不过当你需要同时使用这两个组件时，还是有一些主意点必须小心。 TinyMCE通过对Textarea来实现Rich editor，一次也容易令人造成一个假象，觉得TinyMCE的数据就不存在text area中，可以通过取得text area的value属性值就可以获得所要的数据，可能在一般的Form提交中并没有问题，不过Ajax的提交和不同的Form提交还是有一定的区别。为了手动的同步显示和Text area中的数据，用户必须手动的调用tinyMCE.getContent()这个函数来取得。特别是在AjaxForm中，数据在调用beforeSubmit回调函数 时，数据已经保存在AjaxForm的FormData中，不能通过简单的使用以下的语句：$(&#8216;#textarea&#8217;).value(tinyMCE.getContent())实现数据的更新。必须遍历formData，更新formData的数据才行。 让我来举例说明： tinyMCE.init({ mode : "textareas", theme : "advanced", }); $(document).ready(function() { var options = { beforeSubmit: onSubmit, success: onSuccess, dataType: "json", }; $("#form_info").ajaxForm(options); }); function onSubmit(formData, jqForm, options){ for (var i=0; i&#60; formData.length; i++){ if (formData[i].name == "content"){ formData[i].value = tinyMCE.getContent(); } } return true; } [...]]]></description>
			<content:encoded><![CDATA[<p>AjaxForm是基于JQuery可以实现Form Ajax的提交的一个组件，而TinyMCE是另一个使用javascript来实现Rich Editor的组件。不过当你需要同时使用这两个组件时，还是有一些主意点必须小心。</p>
<p>TinyMCE通过对Textarea来实现Rich editor，一次也容易令人造成一个假象，觉得TinyMCE的数据就不存在text area中，可以通过取得text area的value属性值就可以获得所要的数据，可能在一般的Form提交中并没有问题，不过Ajax的提交和不同的Form提交还是有一定的区别。为了手动的同步显示和Text area中的数据，用户必须手动的调用tinyMCE.getContent()这个函数来取得。特别是在AjaxForm中，数据在调用beforeSubmit回调函数 时，数据已经保存在AjaxForm的FormData中，不能通过简单的使用以下的语句：$(&#8216;#textarea&#8217;).value(tinyMCE.getContent())实现数据的更新。必须遍历formData，更新formData的数据才行。</p>
<p>让我来举例说明：</p>
<pre name="code" class="javascript">
tinyMCE.init({
    mode : "textareas",
    theme : "advanced",
});
$(document).ready(function() {
    var options = {
        beforeSubmit: onSubmit,
        success: onSuccess,
        dataType: "json",
    };
    $("#form_info").ajaxForm(options);
});
function onSubmit(formData, jqForm, options){
    for (var i=0; i&lt; formData.length; i++){
        if (formData[i].name == "content"){
            formData[i].value = tinyMCE.getContent();
        }
    }
    return true;
}
</pre>
<p>其实所有的玄机就在onSubmit中的for循环（例子中的text area的id是content，如果定义其他名字修正此处即可）</p>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2008/01/ajaxform-and-tinymce/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

