Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式动态添加按钮点击时的dijit…如何?_Javascript_Dojo - Fatal编程技术网

Javascript 以编程方式动态添加按钮点击时的dijit…如何?

Javascript 以编程方式动态添加按钮点击时的dijit…如何?,javascript,dojo,Javascript,Dojo,我正在处理的另一个启用dojo的表单有问题。用户可以通过使用对话框输入数据在页面上输入详细信息,该对话框反过来更新数据库,然后将输入的用户数据显示在表单上 添加的每个元素由2个验证文本框和1个筛选选择组成。当它添加到页面时,它们只是作为文本框添加 我试着只添加标准字符串,但这意味着dojo.parse()不会在代码上运行。我还尝试通过编程方式添加元素,但这只是将元素对象作为字符串显示到页面中。到目前为止,我已经: var xhrArgs = { url: url, handleA

我正在处理的另一个启用dojo的表单有问题。用户可以通过使用对话框输入数据在页面上输入详细信息,该对话框反过来更新数据库,然后将输入的用户数据显示在表单上

添加的每个元素由2个验证文本框和1个筛选选择组成。当它添加到页面时,它们只是作为文本框添加

我试着只添加标准字符串,但这意味着dojo.parse()不会在代码上运行。我还尝试通过编程方式添加元素,但这只是将元素对象作为字符串显示到页面中。到目前为止,我已经:

var xhrArgs = {
    url: url,
    handleAs: "text",
    preventCache: true,
    load: function(data){

        var idResult = parseInt(data);

        if(idResult > 0){


            var divStr = '<div id="employ_' + idResult + '" style="float:left;width:100%;">' +
             '<table width="300">' +
                '<tr>' +
                    '<td height="29"><Strong>' +
                            '<input type="text" dojoType="dijit.form.ValidationTextBox ' + 
                                'change="markEmploymentForUpdate(); ' +
                                'id="cmpy_'+ idResult +'" '+
                                'required="true" ' +
                                'promptMessage="Please enter a valid company name" ' +
                                'invalidMessage="please enter a valid company name" ' +
                                'trim="true"' +
                                'value="'+ companyname +'"/>' +
                    '</td>' +
                    '<td height="29"><input dojoType="dijit.form.FilteringSelect" store="rolestore" searchAttr="name" name="role" onchange="markEmploymentForUpdate();" id="roleInput_'+ idResult +'" value="'+ jobrole +'" ></td>' +
                    '<td height="29">' +
                        '<input type="text" dojoType="dijit.form.ValidationTextBox" onchange="markEmploymentForUpdate();"' +
                            'id="jtitle_'+ idResult + '"' +
                            'required="true"' +
                            'promptMessage="Please enter your job title"' +
                            'invalidMessage="Please enter your job title"' +
                            'value="'+ jobtitle + '"/>' +
                    '</td>' +
                    '<td height="29"><img src="/images/site/msg/small/msg-remove-small.png" border="0" onmouseover="this.style.cursor=\'pointer\';" onclick="removeEmployer(\'employ_'+ idResult +'\', '+ idResult +')" /></td>' +
                '</tr>' +
            '</table>' +
        '</div>'; 

            dijit.byId('companydetails').hide();
            dijit.byId('employername').setValue('');
            dijit.byId('jobtitle').setValue('');
            dijit.byId('jobrole').setValue('');

            dojo.byId('data-table').innerHTML += divStr;

            dojo.byId('companydetails').hide(); 


        }else{

            dojo.byId('add-error').innerHTML = '<div class="error">Unable to process your request. Please try again.</div>';

        }



    }       
};

var deferred = dojo.xhrGet(xhrArgs);
我只是把物体打印到页面上

你知道如何将其添加到我的页面并维护dojo组件,而不是将其默认设置为文本框吗


非常感谢。

代码>dojo.parser.parse(dojo.byId('data-table')设置其innerHTML后,是否可以对整个页面执行此操作?例如dojo.parser.parse(this)?@GrantCollins:在加载dojo本身之前,在dojoConfig中设置
parseonload
var textbox = new dijit.form.ValidationTextBox({
   id:"cmpy_" + idResult,
   required:true,
   trim:true,
   "change":"markEmploymentForUpdate();",
   promptMessage:"Please enter a valid company name",
   value:companyname
});