In onsubmit client script i can able to get value from glide ajax but that value is not assiging? t

Narayana Swamy
Tera Contributor

In onsubmit client script i can able to get value from script include but can't able to assign value to field i don't know what is issue please help out ?

 

code is as below:-

 

 

client script:-

function onSubmit() {

 

 

    var glideDateTime = new GlideAjax("DOMSPOAjaxUtils");

    glideDateTime.addParam("sysparm_name", "currentDateTime");

    //glideDateTime.getXMLWait();

    glideDateTime.getXML(getResponse);

    //var answer = glideDateTime.getAnswer();

 

    function getResponse(response) {

        alert('Hi121');

        var answer = response.responseXML.documentElement.getAttribute("answer");

 

        if (g_form.getValue('state') == '2') {

            alert('Hi' + answer);

            g_form.setValue('u_hold_start', answer);

            g_form.setValue('u_hold_end', '');

 

        } else {

            if (g_form.getValue('u_hold_start') != '') {

                g_form.setValue('u_hold_end', answer);

            }

        }

    }

}

 

script include:-

 

var DOMSPOAjaxUtils = Class.create();

DOMSPOAjaxUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    currentDateTime: function() {

        var glideRecord = new GlideDate();

        var gDate = glideRecord.getByFormat('MM/dd/YYYY hh:mm:ss a');

  gs.log('Hi3242342'+gDate);

        return gDate;

    },

 

    type: 'DOMSPOAjaxUtils'

});

13 REPLIES 13

Narayana Swamy
Tera Contributor

Hi @Siddhesh Gawade ,

By using this code i am getting page not responding error while i am submitting the record.

Narayana Swamy
Tera Contributor

by making this modification i can't able to submit the form but functionality is working fine.

function onSubmit() {
    g_scratchpad.flag = false;
    var glideDateTime = new GlideAjax("DOMSPOAjaxUtils");
    glideDateTime.addParam("sysparm_name", "currentDateTime");
    glideDateTime.getXML(getResponse);

    function getResponse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        if (g_form.getValue('state') == '2') {
            g_form.setValue('u_hold_start', answer);
            g_form.setValue('u_hold_end', '');
        } else {
            if (g_form.getValue('u_hold_start') != '') {
                g_form.setValue('u_hold_end', answer);
            }
        }
        g_scratchpad.flag = true;
    }

    while (!g_scratchpad.flag) {
        // Waiting for the response
        return false;
    }
    return true;
}

Narayana Swamy
Tera Contributor

Hi @Siddhesh Gawade ,

by using below code field values are populating but the form is not saving.

function onSubmit() {
    g_scratchpad.flag = false;
    var glideDateTime = new GlideAjax("DOMSPOAjaxUtils");
    glideDateTime.addParam("sysparm_name", "currentDateTime");
    glideDateTime.getXML(getResponse);

    function getResponse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
        if (g_form.getValue('state') == '2') {
            g_form.setValue('u_hold_start', answer);
            g_form.setValue('u_hold_end', '');

        } else {
            if (g_form.getValue('u_hold_start') != '') {
                g_form.setValue('u_hold_end', answer);

            }
        }
        g_scratchpad.flag = true;
        


    }
    while (!g_scratchpad.flag) {
        // Waiting for the response
        return false;

    }
    return true;


}

Tai Vu
Kilo Patron
Kilo Patron

Hi @Narayana Swamy 

Since you only need the current date and time, there's no need to make a GlideAjax call.

You can try my adjustment below.

function onSubmit() {
	var nowDate = new Date();
	var nowDateTimeFormatted = formatDate(nowDate, g_user_date_time_format);
	if (g_form.getValue('state') == '2') {
        g_form.setValue('u_hold_start', nowDateTime);
        g_form.setValue('u_hold_end', '');
    } else {
        if (g_form.getValue('u_hold_start') != '') {
            g_form.setValue('u_hold_end', nowDateTime);
        }
    }
}

 

Cheers,

Tai Vu