Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8359489
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T11:09:33+00:00 2026-06-09T11:09:33+00:00

I have a form like this (from a widget template): ‘<div>’ + ‘ <form

  • 0

I have a form like this (from a widget template):

   '<div>' +
    '  <form data-dojo-type="dijit.form.Form" data-dojo-attach-point="form" method="POST"> ' +
    '    <label for="${id}_workspace">Workspace name</label>  ' +
    '    <input name="workspace" id="${id}_workspace" data-dojo-attach-point="workspace" data-dojo-type="app.ValidationWorkspace" />' +
    '    <label for="${id}_password1">Password</label>  ' +
    '    <input name="password[0]" id="${id}_password1" data-dojo-attach-point="password1" data-dojo-type="app.ValidationPassword" />' +
    '    <label for="${id}_password1">Confirm password</label>  ' +
    '    <input name="password[1]" id="${id}_password2" data-dojo-attach-point="password2" data-dojo-type="app.ValidationPassword" />' +
    '    <input type="submit" data-dojo-attach-point="button" data-dojo-type="app.BusyButton" label="Create!" />' +
    '  </form>' +
    '</div>',

In the code, I wrote:

        data = {};
        data.workspace = that.workspace.get('value');
        data.password = [];
        data.password[0] = that.password1.get('value');
        data.password[1] = that.password2.get('value');

        // Store the data 
        g.stores.workspacesAnon.put(data).then(
          function(res){
            console.log("Jsonrest put(data) returned OK: " + json.toJson(res) );
            that.button.cancel();
          }
        );

Two actual questions:

  1. If I use that.form.value.email instead of that.password1.get(‘value’), sometimes outdated values are submitted to the form (!). For example, if I type something in the password2 field and hit enter straight away, the actual submission happens for the expected in Dojo? How come does it happen?

  2. Is there a better way to get the form’s values, so that ‘password[0]’ and ‘password[1]’ become an array automatically etc.?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T11:09:36+00:00Added an answer on June 9, 2026 at 11:09 am

    Every widget under dijit.form makes sure that the one form element with the correct name is updated with its value, even if the values are something like a filtering select click or a date in a calendar.

    With that said, we know that a common form.submit() will work as expected.

    However while doing the submission as an AJAX request, we need to loop the form-elements for their values and make it a json key value object.

    You have it easy, dojo.xhrPost does this internally if called like this:

    dojo.xhrPost ( {
       url: 'submiturl.sapi',
       form: dojo.byId('myFormDomId')
    } )
    

    For higher level of control you can use either dojo.formToJson or dijit.form.Form.getValues – e.g. these two variants

    var values = dojo.formToJson(dojo.byId('myFormDomId'));
    // OR
    var values = dijit.byId('myFormDijitId').getValues();
    // mod or mixin your custom values, examplewise
    values = dojo.mixin(values, {   anotherVariable: 'sentAsPostParam'   });
    
    dojo.xhrPost ( {
        url: 'submitUrl.sapi',
        content : values
    } );
    

    In regards to your first question 1)
    If a validator is attached to the widget email – and the validation renders in-valid, the input element is not set accordingly. Setting value is done once there’s either 1 – keyup event or 2 – onblur event. To ensure that correct values are sent, use dijit.form.Form.validate (seeing as you allready have extended your form dojoType) like this

    var formWidget = dijit.byId('myFormDijitId');
    if(formWidget.validate()) {  // loops all form widgets and 'sums' up their validators
       dojo.xhrPost( { url: 'submiturl.sapi', content: formWidget.getValues() } );
    }
    

    EDIT:

    specifically for creating a nested array within the item, OP needs for the JsonRest store – it is nescessary to call the input elements by the excact same name, e.g.

    <input name="password" 
                            id="${id}_password1" data-dojo-attach-point="password1" data-dojo-type="app.ValidationPassword" />
    <input name="password" 
                            id="${id}_password2" data-dojo-attach-point="password2" data-dojo-type="app.ValidationPassword" />
    

    Also, make use of dojo.formToJson on the native form element, like so (do it after validation to assert values being set):

        g.stores.workspacesAnon.put(
           dojo.formToJson(widgetReference.form.domNode)
        ).then( ... );
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have form like this: <div class=satu> <input type='text' size='1' maxlength='1' name='score[1][]' id='score[1][]'> </div>
I have form like this : <div id='add_field' class='locbutton'><a href='#' title='Add'>Add</a></div> <div id='remove_field' class='locbutton2'><a
I have a form like this: <form id=surveyForm method=post action=submit.php> <input type=text id=good value=0
Suppose I have a form like this: Name:<input type=text name=xxx id=name/> Type:<select> <option>xx</option> <option>xx</option>
I have a simple form like this: <form name=serachForm method=post action=/home/search> <input type=text name=searchText
I have a form like this: <form id='myForm'> <input type='text' name='search' /> <input type='text'
I have form like this: <form method=POST action=<?php echo base_url() ?>admin/admin_search> <fieldset> <label for=nalozi>Nalozi</label><input
I have a form like this: <form action=form_send.php method=post> <table> <tr> <td><label for=address>address</label></td> <td><input
I have a form like this: <form id=loginCompact action=https://externalsite... name=sportsbook method=post onsubmit=createCookie('BRLOG', document.sportsbook.username.value, 1)>
I have simple form like this which accepts only two values string action and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.