2
votes

I have a Web resource that is opened on the click of a button as follows:

var windowOptions = { height: 400, width: 50 };
Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);

I have a little input field inside the html webresource (as you can guess, it’s a date time field). My question is, how can I get the field data after the form is closed? I called the code above from a function

function Cancel() {

   
    var contract_id = Xrm.Page.data.entity.getId();
    var contract_guid = contract_id.replace(/[{}]/g, "");
    
    var windowOptions = { height: 400, width: 50 };
    Xrm.Navigation.openWebResource("DCWIMS_/html/datepicker.html", windowOptions);

    //need field data to be returned so I can set a field in the form to its value
    var datefield = ??

    formContext.getAttribute("new_cancellationdate").setValue(datefield);


    //Set the stage to send enquiry letter
    XrmSvcToolkit.setState({
        id: Xrm.Page.data.entity.getId(),
        entityName: "new_contract",
        stateCode: 1,
        statusCode: 100000002, //Cancelled
        async: false
    });
    
    }

Here is the html webresource:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>
    <title>Set Cancellation Date</title>

    <script>

        

        

        window.onload = function () {
            document.getElementById('party-time').onsubmit = function () {

                var date = document.getElementById('party-time').value;
                webResourceData.windowCallback(date);

                // You must return false to prevent the default form behavior
                return false;
            };
        };

        function Quit() {
            window.close();
        }

        


    </script>
</head>

<body>

    
 
  <fieldset>
    <legend>Cancellation Date</legend>

    <div>
        <label for="party-time">Date/time:</label>
        <input type="datetime-local" id="party-time"
               name="party-time" value=""
               min="" max="" />
        <button type="submit" onclick="Quit()">Submit </button>
    </div>


</fieldset>
 
 
</body>
</html>
1

1 Answers

1
votes

Try this. Instead of returning value from webresource to parent window, assign it from HTML itself.

    function Quit() {
            window.opener.Xrm.Page.getAttribute("new_cancellationdate").setValue(document.getElementById('party-time').value);

            window.close();
    }