2009-10-23 8 views
17

मेरी संवाद बॉक्स में इनपुट फ़ील्ड पोस्ट कर रहे हैं नहीं किया जा रहा है, और मुझे यकीन है कि क्यों नहीं कर रहा हूँ ...Jquery UI संवाद के अंदर इनपुट भेजा नहीं जा रहा है?

मैं मैक फ़ायरफ़ॉक्स और सफारी पर यह परीक्षण किया है, और खिड़कियां एक ही परिणाम के साथ & फ़ायरफ़ॉक्स यानी, इसलिए मुझे नहीं लगता कि यह ब्राउज़र है, और अगर मैं संवाद बॉक्स अक्षम करता हूं तो फ़ील्ड ठीक से पोस्ट होते हैं।

मैंने jquery ui दस्तावेज़ों को दोबारा पढ़ लिया है और मुझे यह नहीं मिल रहा है कि मैं क्या गलत कर रहा हूं ... ऐसा लगता है कि संवाद बॉक्स इनपुट का समर्थन नहीं करेगा। , सही

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#dialog").dialog({ 
    autoOpen: false, 
    buttons: { 
    "OK": function() { 
    $(this).dialog('close'); 
    } 
    } 
    }); 
    $("#publishSettings").click(function(){ 
    $("#dialog").dialog('open'); 
    }); 
}); 
</script> 

<form method="POST" action="publish.php"> 
<input type="button" id="publishSettings" value="Publish Settings"> 
<div id="dialog"> 
    Publish Date 
    <input type="text" name="publishOn"><br> 
    Unpublish Date 
    <input type="text" name="unPublishOn"> 
</div> 
<input type="submit" name="pubArticle" value="Publish"> 
</form> 

साधारण से बाहर कुछ भी नहीं:

यहाँ कोड मैं उपयोग कर रहा हूँ का एक संक्षिप्त संस्करण है? यह मेरे लिए क्यों काम नहीं करेगा !?

धन्यवाद!

उत्तर

32

जब JQuery संवाद बॉक्स खोलता है, तो यह इसे फ़ॉर्म के बाहर ले जाता है।

jQuery UI Dialog with ASP.NET button postback

मूल रूप से अपने मामले में

:

var dlg = $("#dialog").dialog({ 
    autoOpen: false, 
    buttons: { 
    "OK": function() { 
    $(this).dialog('close'); 
    } 
    } 
    }); 
dlg.parent().appendTo($("#yourformId")); 

इसे ठीक करना चाहिए

यहाँ उस के लिए समाधान है।

+0

ट्रिकी! मैंने उस सवाल को देखा, लेकिन इसे पढ़ना समाप्त नहीं किया क्योंकि मैंने सोचा था कि यह एएसपीनेट विशिष्ट था। ओह। धन्यवाद !! – neil

+4

jQuery UI v1.10.0 के बाद से आप इसे सीधे ऐपेंड का उपयोग करके कर सकते हैं - http://api.jqueryui.com/dialog/#option-appendTo –

+0

यह गूंगा है। Jquery इसे आसान बनाना माना जाता है। फ़िर भी सहायता के लिए धन्यवाद। –

1

मुझे यकीन है कि jQuery UI ने डोम में अपने सामान्य स्थान से संवाद अनुभाग को तोड़ दिया है और फिर इसे किसी भिन्न स्थान पर ले जाता है। यह आपके इनपुट तत्व को फॉर्म पैरेंट तत्व से बाहर ले जाएगा। आप फॉर्म फॉर्म के बिना फॉर्म सबमिट नहीं कर सकते हैं, इसलिए यही विफल हो जाता है।

<div id="dialog"> 
<form method="POST" action="publish.php"> 
<input type="button" id="publishSettings" value="Publish Settings"> 
    Publish Date 
    <input type="text" name="publishOn"><br> 
    Unpublish Date 
    <input type="text" name="unPublishOn"> 
<input type="submit" name="pubArticle" value="Publish"> 
</form> 
</div> 

publishSettings बटन पॉपअप में नहीं होने की जरूरत है, तो आप यह रूप से बाहर ले सकता है और सिर्फ प्रस्तुत घटना पर अपने मूल्य को पकड़ने और:

मैं के रूप में एचटीएमएल पुनर्लेखन सुझाव है कुछ भी सबमिट होने से पहले इसे एक छिपे हुए इनपुट तत्व के रूप में जोड़ें।

शुभकामनाएं।

0

एचटीएमएल 5 अनुपालन ब्राउज़र (आईई नहीं, लेकिन नवीनतम एफएफ, क्रोम और सफारी इसका समर्थन करते हैं) पर, आप अपने इनपुट फ़ील्ड पर "फॉर्म" विशेषता सेट कर सकते हैं, और ऐसा करने से आप उन्हें कहीं भी स्थानांतरित कर सकते हैं। मुझे इस समस्या का भी सामना करना पड़ा और यह पता लगाने में कुछ समय लगा कि यानी संवाद इनपुट क्यों नहीं भेजा गया।

10

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन किसी को भी, जो एक ही मुद्दा वहाँ एक नए और सरल समाधान है के लिए: एक "appendTo" विकल्प jQuery UI में 1.10.0

http://api.jqueryui.com/dialog/#option-appendTo

शुरू किया गया है
$("#dialog").dialog({ 
    appendTo: "form" 
    .... 
}); 
0

मेरे पास एक ही समस्या थी और समाधान (जैसे user2100025 कहा गया था) को जोड़ने के लिए "appendTo = '#yourform'," अपने कोड में। यहां मेरा कोड और यह ठीक काम कर रहा है।

मुझे आशा है कि यह मेरा अनुरोध स्वीकार करने में किसी को :)

<script> 
 
    $(function() { 
 
    $("#dialog").dialog({ 
 
     autoOpen: false, 
 
     resizable: false, 
 
     modal: true, 
 
     appendTo: '#myform', 
 
     buttons: { 
 
     "Yes"function() { 
 
      $('#myform').submit(); 
 
     }, 
 
     'No' function() { 
 
      $(this).dialog('close'); 
 
     } 
 
     } 
 
    }); 
 

 
    $("#button").click(function() { 
 
     $("#dialog").dialog("open"); 
 
    }); 
 
    }); 
 
    </script>

संबंधित मुद्दे