Form not submiiting at 1st time in portal

Haresh Haru
Tera Expert

Hello @Sagar Pagar 

 

I have followed this artical bellow and its working as expected but when user submit the request at 1st time it is not submitting and agian if the user click on that submit button it will submitting . could you please help me on this I have forworded the article link and my scripts which i have written ..

 

Artilce link :: https://www.servicenow.com/community/developer-articles/getxmlwait-alternative-for-service-portal/ta...

 

Scripts : 

Onsubmit client script :

function onSubmit() {
    if (g_scratchpad.isFormValid)
        return true;
    //var user = g_user.userID;
    var fname = g_form.getValue('first_name');
    var lname = g_form.getValue('last_name');
    var ga = new GlideAjax('GuestUserCheck'); //Name of the Script Include
    ga.addParam('sysparm_name', 'getInfo'); //name of function in script include
    ga.addParam('sysparm_user_fname', fname);
    ga.addParam('sysparm_user_lname', lname);
    ga.getXMLAnswer(setAnswer);
    return false;


    function setAnswer(answer) {
        //alert(answer);
        if (answer == 'true') {
            g_form.addErrorMessage('The guest user already exists in the user table');
            return false;
        }
        var actionName = g_form.getActionName();
        g_scratchpad.isFormValid = true;
        g_form.submit(actionName);

    }
}
 
Script include client callable :
var GuestUserCheck = Class.create();
GuestUserCheck.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getInfo: function() {

        var userfname = this.getParameter('sysparm_user_fname');
        var userlname = this.getParameter('sysparm_user_lname');
        var results = {};

        var user = new GlideRecord('sys_user');
        user.addEncodedQuery('first_name='+ userfname+'^last_name='+userlname+'^u_userid_local_idSTARTSWITHc');
        user.query();

        if (user.next()) {
            return true;
        }
        else return false;

    },

    type: 'GuestUserCheck'

});
 
Regards,
Haresh
1 ACCEPTED SOLUTION

Sagar Pagar
Tera Patron

Hi @Haresh Haru,

 

Check g_scratchpad.isFormValid variable value is true/ false or null or undefined.

 

Thanks,

Sagar Pagar

The world works with ServiceNow

View solution in original post

2 REPLIES 2

Harish KM
Kilo Patron
Kilo Patron

Hi @Haresh Haru Modified your SI and client script.

Script include:

getInfo: function() {

var userfname = this.getParameter('sysparm_user_fname');
var userlname = this.getParameter('sysparm_user_lname');
var results = {};

var user = new GlideRecord('sys_user');
user.addEncodedQuery('first_name='+ userfname+'^last_name='+userlname+'^u_userid_local_idSTARTSWITHc');
user.query();

if (user.next()) {
return true;
}
return false;

},

 

Client script:

function onSubmit() {
if (g_scratchpad.isFormValid)
return true;
//var user = g_user.userID;
var fname = g_form.getValue('first_name');
var lname = g_form.getValue('last_name');
var ga = new GlideAjax('GuestUserCheck'); //Name of the Script Include
ga.addParam('sysparm_name', 'getInfo'); //name of function in script include
ga.addParam('sysparm_user_fname', fname);
ga.addParam('sysparm_user_lname', lname);
ga.getXMLAnswer(setAnswer);
return false;


function setAnswer(answer) {
//alert(answer);
if (answer == true) {
g_form.addErrorMessage('The guest user already exists in the user table');
return false;
}

else {
var actionName = g_form.getActionName();
g_scratchpad.isFormValid = true;
g_form.submit(actionName);

}

}
}

Regards
Harish

Sagar Pagar
Tera Patron

Hi @Haresh Haru,

 

Check g_scratchpad.isFormValid variable value is true/ false or null or undefined.

 

Thanks,

Sagar Pagar

The world works with ServiceNow