日期:2014-05-16  浏览次数:20499 次

高手来救我啊,一个小问题我折腾了7个小时了,有代码很简单
 <form id="form1" runat="server">   
         <input id="openDialog" type="button" value="opendialog" />
        <div id="dialog" title="Dialog Title">
            <label>请输入文件名:</label><br />
            <input id="txtFileName" type="text" /><br />
            <input type="button" value="OK" id="btnOk" />
        </div>          
<script>
    $("#dialog").dialog({ autoOpen: false, width: 300, modal: true });
    $("#openDialog").click(function () {    
        $("#dialog").dialog("open");
        $("#dialog").dialog({ width: 300, modal: true });
       //我的意图是希望他断在这里,等用户和弹出的对话框交互完毕,
    //获取了用户输入的“文件名”后,再执行下面的话
       //但是让人无耐的是,即便是我将对话框设为modal模式,下面的代码
         //在打开对话框后会继续执行,也就是说他还没等用户和对话框交互完毕
        // 就执行完了,这样我的后续处理就没什么意义啊,高手帮忙支个招 ,最好有
    //代码,谢谢了
    var x = $("#txtFileName").text();
     //后续处理...
    });
    $("#btnOk").click(function () {
        $("#dialog").dialog("close");
    }); 
</script>
    </form>

------解决方案--------------------
jquery的东西不太懂 ,但是你可以设个返回值啊,如果返回是null或者""就不执行 道理应该一样的吧
------解决方案--------------------
把接下来的那些东西放在回调函数里  你查查api  应该有回调方法作为参数的
------解决方案--------------------
这事dialog的API,我觉得你用的上。其中
$( "#dialog" ).dialog({
  dialogClass: "no-close",
  buttons: [
    {
      text: "OK",
      click: function() {
        $( this ).dialog( "close" );
      }
    }
  ]
});

------解决方案--------------------
觉得你写的部分应该写在回调函数里面。