【发布时间】:2012-08-08 07:47:43
【问题描述】:
我目前正在使用 wmd 编辑器和 jQuery-UI 选项卡。我创建了一个 ajax/js 函数,它将提交(单击下一个按钮时)wmd-preview 值,然后 php 在选项卡 2 中回显结果。问题是我没有显示任何结果。我不是在寻找 textarea 值,而是 div #wmd-preview 值。如何通过我的 ajax/函数显示 div wmd-preview 的值?
JS
<script>
$(function () {
var $tabs = $('#tabs').tabs({
disabled: [0, 1],
select: function () {
$.ajax({
type: "POST",
url: "post_tabs.php",
data: {
"wmd": $("#wmd-preview").val(),
},
success: function (result) {
$("#tab-2").html(result);
}
});
}
});
$(".ui-tabs-panel").each(function (i) {
var totalSize = $(".ui-tabs-panel").size() - 1;
if (i != totalSize) {
next = i + 2;
$(this).append("<a href='#' class='next-tab mover' rel='" + next + "'>Next Page »</a>");
}
if (i != 0) {
prev = i;
$(this).append("<a href='#' class='prev-tab mover' rel='" + prev + "'>« Prev Page</a>");
}
});
$('.next-tab').click(function () {
var currentTab = $('#tabs').tabs('option', 'selected');
if (
(
currentTab == 0 && /*(B)*/
$.trim($('#wmd-input').val()).length > 0
)
) {
var tabIndex = $(this).attr("rel");
$tabs.tabs('enable', tabIndex).tabs('select', tabIndex).tabs("option", "disabled", [0, 1]);
} else {
switch (currentTab) {
case 0:
alert('Please fill out all the required fields.', 'Alert Dialog');
break;
}
}
console.log("preventing default");
return false;
});
$('.prev-tab').click(function () {
var tabIndex = $(this).attr("rel");
$tabs.tabs('enable', tabIndex).tabs('select', tabIndex).tabs("option", "disabled", [0, 1]);
return false;
});
});
</script>
PHP
<?
if (isset($_POST['wmd'])){
$wmd = $_POST['wmd'];
echo ('<div id="text_result"><span class="resultval"><h2>Textarea Echo result:</h2>'.$wmd.'</span></div>');
}
?>
HTML
<div id="tab-1" class="ui-tabs-panel ui-tabs-hide">
<div id="wmd-button-bar"></div>
<textarea id="wmd-input" name="wmd-input" cols="92" rows="15" tabindex="6"></textarea>
<div id="wmd-preview"></div>
</div>
<div id="tab-2" class="ui-tabs-panel ui-tabs-hide">
</div>
【问题讨论】:
-
问题是您正在禁用选项卡。禁用选项卡实质上会删除单击功能。如果是这种情况,那么您的 select 方法将永远无法触发。也许您想重新考虑您的设计?
-
@Ohgodwhy,我使用常规输入字段具有相同的功能。
-
您正在使用
$("#wmd-preview").val(),..您应该在输入字段上使用val()并在div等上使用html()..这种情况下正确的是$("#wmd-input").val()-这是正确的选择,因为它更好地反映了现实。预览取决于用户输入以外的更多内容 - 您不希望这样。
标签: php javascript jquery ajax jquery-ui