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 如何实现一个有返回值的对话框的主要内容,如果未能解决你的问题,请参考以下文章

jQuery jcrop 插件:如何发布?

如何使用jquery实现点击按钮弹出一个对话框

jquery 如何实现 prompt 的功能

jquery如何实现一个按钮只能点击一次,再点击就无效?

如何激活由 ajax datepicker 事件生成的选项卡小部件内返回的 jquery 对话框?

jquery如何实现点击按钮,按钮上面显示一个“+1”的提示