Jquery 如何实现一个有返回值的对话框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery 如何实现一个有返回值的对话框相关的知识,希望对你有一定的参考价值。
我只想知道最核心的原理,就是如何返回一个值?急啊,我不想用插件。
你说的填出层吧.弹出层无非两个方法实现,
一个是弹出一个普通的div层,
另一个是弹出的框架.
这样要想获取返回值就很好说了!追问
您说的是iframe吗?是不是弹出的div里包含一个iframe,然后iframe里写啊
追答一个div里面包含一个框架!里面的数据通讯就要考虑框架了!
追问其实我想弹出一个div,里面有一个文本框,还有一个确定按钮。我把它定义在一个函数choose()中,单击确定按钮时,这个函数返回文本框的输入。
并且想在js里这样调用:
var tem = choose();
请问如何实现呢?不用插件啊,谢谢啊,急啊,拜托了
很简单,你可以写一个单击触发事件就行了.当你单击确定按钮的时候触发点击事件就行了!
追问不好意思啊,我不太会,您给个关键代码行吗?谢谢,我把分都给你
参考技术A confirm不就是有返回值嘛如何使用 JQuery 监听 RadioGroup 选定值的更改?
【中文标题】如何使用 JQuery 监听 RadioGroup 选定值的更改?【英文标题】:How do I listen for changes to a RadioGroup's selected value using JQuery? 【发布时间】:2011-05-04 17:48:53 【问题描述】:我需要为一组单选按钮注册一个处理程序。我正在使用 JQuery 并希望它的 .change 方法能够实现这一点。但是我还没有体验到想要的行为。
这是我写的一个示例 sn-p。可悲的是,“radioValueChanged”仅在初始加载时调用。选择 true / false 不会触发处理程序。
<html>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<form id="myForm">
<div id="Question1Wrapper">
<div>
<input type="radio" name="controlQuestion" id="valueFalse" value="0" />
<label for="valueFalse">
False</label>
</div>
<div>
<input type="radio" name="controlQuestion" id="valueTrue" value="1" />
<label for="valueTrue">
True</label>
</div>
</div>
<div id="Question2Wrapper">
<div>
<label for="optionalTextBox">
This is only visible when the above is true</label>
<input type="text" name="optionalTextBox" id="optionalTextBox" value="" />
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function ()
$("#controlQuestion").change(radioValueChanged('controlQuestion'));
)
function radioValueChanged(radioName)
radioValue = $('input[name=' + radioName + ']:checked', '#myForm').val();
alert(radioValue);
if(radioValue == 'undefined' || radioValue == "0")
$('#Question2Wrapper:visible').hide();
else
$('#Question2Wrapper:visible').show();
</script>
</form>
【问题讨论】:
【参考方案1】:这里有几个问题。
您会在脚本执行时立即运行radioValueChanged('controlQuestion')
,因为这是一个方法调用,而不是一个函数分配。
选择器$("#controlQuestion")
错误,您没有任何id 为controlQuestion
的元素。
radioValueChanged
方法未正确处理值,因为它们将被传递给 jQuery 事件处理程序。
您可以尝试以下方法:
jQuery(document).ready(function ()
$("input[name='controlQuestion']").change(radioValueChanged);
)
function radioValueChanged()
radioValue = $(this).val();
alert(radioValue);
if($(this).is(":checked") && radioValue == "0")
$('#Question2Wrapper').hide();
else
$('#Question2Wrapper').show();
老实说,我不确定这是否是您使用 if 语句寻找的实际逻辑,但希望这将为您更正当前代码提供基础。
【讨论】:
非常感谢。正如你所知道的,javascript/jquery 相当新/生锈。所以'#'总是前缀一个id而不是一个名字......很高兴知道:) "$(this).is(":checked") 到底是做什么的?我想我想要相反的结果。如如果未选择任何值,我希望隐藏问题。 @Justin 是的,选择器实际上遵循 CSS 选择器规则,您可以在 w3 中搜索 css 选择器.. 层次结构、名称、id 等。is
也是一个 jQuery 函数:docs.jquery.com/Is(虽然我在与我有关的 api.jquery.com 上没有找到它)。
is()
肯定在 api 子域:api.jquery.com/is/。
@David Thomas 谢谢,尽管我确实考虑过,但我实际上并没有尝试将“is”附加到 api url 并导航。顺便说一句,你用饭碗让我饿了!【参考方案2】:
$('#Question2Wrapper:visible').show();
取出:visible,只有当div已经显示时才会选中它,实际上如果隐藏了就永远不会显示。
$('#Question2Wrapper').show();
我跑题了,我认为 Quintin 达到了大部分要点。这里有一些问题。
【讨论】:
以上是关于Jquery 如何实现一个有返回值的对话框的主要内容,如果未能解决你的问题,请参考以下文章