2012-12-06 13 views
7

मैं वर्तमान में उपयोगकर्ता नाम और पंजीकरण उद्देश्यों के लिए ईमेल के साथ डार्ट में एक साधारण रूप बनाने का प्रयास कर रहा हूं।Google डार्ट फॉर्म उदाहरण उदाहरण

मुझे पूरा काम नहीं कर रहा उदाहरण है कि मैं परीक्षण कर सकता हूं। अगर कोई बता सकता है कि नीचे दिए गए jQuery कोड को डार्ट में कैसे परिवर्तित किया जाए, तो मुझे लगता है कि चीजों को स्पष्ट रूप से स्पष्ट करेगा।

इसके अलावा मैंने डार्ट के लिए FormData कक्षा देखी है लेकिन कोई उदाहरण नहीं है। किसी भी मदद की सराहना की है।

$("#submit").click(function() { 
    $.post($("#myForm").attr("action"), 
      $("#myForm :input").serializeArray(), 
      function(info) { 

       $("#responseDiv").empty(); 
       $("#responseDiv").html(info); 
      }); 

    $("#myForm").submit(function() { 
     return false;  
    }); 
}); 

उत्तर

11

पहले आयात दो पुस्तकालयों:

serializeForm(FormElement form) { 
    var data = {}; 

    // Build data object. 
    form.querySelectorAll('input,select').forEach((Element el) { 
    if (el is InputElement) 
     data[el.name] = el.value; 
    }); 

    return data; 
} 

यह बस डेटा की एक Map में एक रूप को धारावाहिक:

import 'dart:html'; 
import 'dart:convert'; 

फिर हम एक serializer समारोह परिभाषित करते हैं। मुझे डार्ट फॉर्म सीरिएलाइज़र से अवगत नहीं है, उस उद्देश्य के लिए कुछ पैकेज हो सकते हैं। ध्यान दें कि उपर्युक्त उदाहरण केवल इनपुट के साथ सौदा करता है।

अगला हम निम्न HTML मान:

<form id="myForm" action="/bar"> 
    <label>Foo:</label> 
    <input type="text" name="foo" value="bar" /> 
</form> 

<button id="mySubmit">Send it</button> 

और रूप से निपटने के लिए हमारे डार्ट क्लाइंट-साइड कोड पिछले:

main() { 
    FormElement form = querySelector('#myForm'); 
    ButtonElement button = querySelector('#mySubmit'); 

    button.onClick.listen((e) { 
    var req = new HttpRequest(); 

    req.onReadyStateChange.listen((ProgressEvent e) { 
     if (req.readyState == HttpRequest.DONE) { 
     print('Data submitted!'); 
     } 
    }); 

    req.open('POST', form.action); 
    req.send(JSON.encode(serializeForm(form))); 
    }); 
} 

यह मिलना चाहिए आप शुरू कर दिया।

आप अपने फॉर्म के लिए Polymer का उपयोग भी करना चाह सकते हैं।

+0

एक चलती शुरुआत। इस तरह के एक विस्तृत स्पष्टीकरण के लिए धन्यवाद। – basheps

+0

मैंने इसका उपयोग करने की कोशिश की है, लेकिन ऐसा लगता है कि कई चीजें बदल गई हैं। उदाहरण के लिए, 'डार्ट: जेसन' अब एक अलग तरीके से' डार्ट: कन्वर्ट 'और कोड' form.elements.forEach ((एलिमेंट एल) { अगर (एल इनपुट इनपुट है) डेटा [el.name] = el.value; }); 'एक त्रुटि देता है (' फॉर्मलेमेंट 'में कोई ऐसा गेटर' तत्व 'नहीं है) मैंने यह भी देखा है कि' क्वेरी (चयनकर्ता) 'अब क्वेरी है चयनकर्ता (चयनकर्ता) ' – dieortin

+0

@ dieortin मैंने अपना जवाब अपडेट किया। –

0

उपरोक्त उदाहरण से कार्य करना। आप ऐसा कुछ भी कर सकते हैं।

main(){ 
    var form = new FormData(query('#myForm'); 
    var button = query('#mySubmit'); 

    button.onClick.listen((e){ 
     var request = new HttpRequest(); 
     request.on.readyStateChange.add((HttpRequestProgressEvent e) { 
      if (request.readyState == HttpRequest.DONE) { 
      print('Data submitted!'); 
      } 
      }); 
      request.open('POST','http://localhost/form_info.php'); 
      request.send(form); 
     }); 
     } 
संबंधित मुद्दे