我正在开发'添加链接'功能。为此,我正在使用来自Twitter Boostrap JS的Modal插件。在主页面上只有要填充的“链接”字段,当用户点击“添加链接”按钮时,会弹出一个模式,用户会看到完整的表单以填充3个字段:链接,标题,标签。但是,我希望1)链接字段预先填充上一步的值,并且2)标题字段预先填充了网址的标题。
我可以单独完成这些,但我不能同时做到这两点。事实上,下面的代码预填充链接字段,使标题字段为空。如果我取消注释AJAX部分并添加'onClick =“sendRequest()',那么代码通过执行php脚本'savePostAjax.php'预填充title字段,该脚本给出了url回显标题。但是,在这种情况下,链接字段我猜,Bootstrap事件以某种方式干扰了我写的AJAX。我尝试过的一种方法是用JavaScript获取url标题,但是没有用。你怎么去解决这个预先填充BOTH链接和标题的问题模态对话框中的表单?谢谢!
<html>
<head>
<title>Example</title>
<script src="scripts/jquery.min.js"></script>
<script src="scripts/bootstrap-modal.js"></script>
<link rel="stylesheet" href="scripts/bootstrap.min.css">
<link rel="stylesheet" href="main.css" />
<!-- AJAX
<script type="text/javascript" src="ajaxwebform/prototype.js"></script>
<script type="text/javascript">
function sendRequest() {
new Ajax.Request("savePostAjax.php",
{
method: 'post',
parameters: 'linkURL='+$F('linkURL'),
onComplete: showResponse
});
}
function showResponse(req){
$('show-title').value= req.responseText;
}
</script>
AJAX ENDS -->
<script type="text/javascript">
$(document).ready(function()
{
$('#modal-from-dom').bind('show',function()
{
$(".modal-body #wall-post").val($("#linkURL").val());
});
});
</script>
</head>
<body>
<!-- The Modal Dialog -->
<div id="modal-from-dom" class="modal hide fade">
<div class="modal-header">
<a href="#" class="close">×</a>
<h3>Add Link</h3>
</div>
<div class="modal-body">
<!-- onsubmit='return false;' -->
<form id='post-on-wall' method='POST' action='savePost.php' enctype='multipart/form-data' >
<div>
<input id='show-title' class='label-inline' name='title' type='text' size='100'>
</div>
<div>
<input id='wall-post' class='label-inline' name='linkURL' type='text' size='100'>
</div>
<div>
<input id='link-field' class='label-inline' name='topics' type='text' size='100' placeholder='topics'>
</div>
</form>
</div>
<div class="modal-footer">
<a href="#" class="btn primary">Add Link</a>
</div>
</div>
<!-- Enf of The Modal Dialog -->
<div class="container">
<div class="wall-post">
<input id='linkURL' class='label-inline' name='linkURL' type='text' size='100' autocomplete='off'>
<button data-controls-modal="modal-from-dom" data-backdrop="true" data-keyboard="true" class="btn">Add Link</button>
<!-- onClick="sendRequest()" -->
</div>
</div>
</body>
答案 0 :(得分:1)
它不起作用的原因是因为你包含了原型和jquery,两者都试图占用$。您可以通过在noConflict模式下使用jQuery轻松解决这个问题,但我建议完全抛弃原型,因为在这种情况下使用两个库是没有意义的。
我实际上并没有这样做,但它应该是你需要的。当然在实际使用它之前,你需要添加一个微调器来指示正在进行ajax请求等。
jQuery(document).ready(function($) {
function setTitle(url) {
$.post("savePostAjax.php", { linkURL: $('#linkURL').val() },
function(resp) {
$('show-title').val= resp;
});
};
$('#modal-from-dom').bind('show',function() {
var linkURL = $('#linkURL').val();
$('.modal-body #wall-post').val(linkURL);
setTitle(linkURL);
});
});