Ajax on select control Jquery javascript?
Ajax on select control Jquery javascript?
当有人单击选择控件值时,我想做ajax。问题是onChange不会触发ajax调用jquery:(
这就是我到目前为止:)
JAVASCRIPT:
<script>
function swapContent(cv) {
$("#myDiv").html('').show();
var url = "ajax.php";
$.post(url, {contentVar: cv} ,function(data) {
$("#myDiv").html(data).show();
});
}
</script>
.HTML
<select name="dimenzije" onchange"javascript:swapContent(this);">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
最初加载页面时此页面元素的默认内容还有阿贾克斯。.PHP
<?php
$contentVar = $_POST['contentVar'];
echo $contentVar;
?>
没有什么能触发:(但是当我做这样的事情时
<a href="#" onClick="return false" onMouseDown="javascript:swapContent('Prva');">Content1</a>
<a href="#" onClick="return false" onMouseDown="javascript:swapContent('Druga');">Content2</a>
<a href="#" onClick="return false" onMouseDown="javascript:swapContent('Treca');">Content3</a>
有了 HREF,一切都很好,很顺利,我哪里犯了错误?
你应该使用事件处理程序 .change()。
JAVASCRIPT:
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function($){
// event handler
$('select[name="dimenzije"]').on('change', function(event) {
// get the value of the selection
var cv = $(this).val(),
url = "ajax.php";
// change the hidden div's content to something if you're setting html().
$("#myDiv").html('Loading...').show();
// post
$.post(url, {contentVar: cv} ,function(data) {
// Replace with new content
$("#myDiv").html(data).show();
});
});
});
</script>
.HTML
<select name="dimenzije" id="swapContent">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
代码的问题在于 2 个问题。首先,您将"this"作为参数传递给contentSwap。而不是实际值。
改变
{contentVar: cv}
到类似的东西
{contentVar: $(cv).val()}
可能有效。
其次,你在 html 中还有一个 select 元素的拼写错误:
onchange"javascript:swapContent(this);"
应该是
onchange="javascript:swapContent(this);"
然而,就像Alaa Badran提到的那样,这种类型的内联JavaScript是不行的。
尝试这样的事情:
<select name="dimenzije">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<script>
$('select[name="dimenzije"]').change(function(e){
var $this = $(this),
url = "ajax.php";
$("#myDiv").html('').hide();
$.post(url, {contentVar: $this.val()}, function(data) {
$("#myDiv").html(data).show();
});
});
</script>
另外,由于您在 ajax 调用之前和之后使用 .show(),因此您可以省略它。你的意思是先调用 .hide() 然后调用 .show()?
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- Javascript(jQuery)给了我奇怪的结果
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Javascript/jQuery中的并行Ajax调用
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- Javascript/Jquery/PHP加载页面-如何
- Javascript/Jquery Blob not showing Chrome PDF
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- OnClick/Onhover Javascript/jquery
- 如何从javascript/jquery中的复选框中获取布尔值
- javascript/jquery将utc转换为短格式的本地时间
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 如何向这个javascript/jquery函数添加参数
- 用JavaScript/jQuery点击图片,选中多个方框
- 使用Javascript/JQuery获取JSON GET数据
- 从数组中删除元素的最佳方法是:javascript/jquery
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 用DRY方式Javascript/JQuery动态替换HTML
- 类似Javascript JQuery的库
- 如何在 Javascript/jQuery 中获取一些随机下拉列表的选定值