4

我有一个创建动态表的脚本。用户单击按钮后,row将添加表格底部的下一步。:

function createRow()
        {
            var options='<select name="nameselect'>
            options+='<option>one</option>';
            options+='</select>';
        options+='<input type=\'submit\' name=\'loadReq\' value=\'Pobierz dane\' />';
            var form = document.createElement('form'); // create row node
            var row = document.createElement('tr'); // create row node
            var col = document.createElement('td'); // create column node
            var col2 = document.createElement('td'); // create second column node
            var col3 = document.createElement('td'); // create column node
            var col4 = document.createElement('td'); // create second column node
            var col5 = document.createElement('td'); // create column node
            var col6 = document.createElement('td');
            form.appendChild(col);
            row.appendChild(form); // append first column to row
            row.appendChild(col2); // append second column to row
            row.appendChild(col3); // append first column to row
            row.appendChild(col4); // append second column to row
            row.appendChild(col5); // append first column to row
            //row.appendChild(col6);
            col.innerHTML = options; 

            col2.innerHTML = 'some text'; // put data in second column
            col3.innerHTML = 'some text';
            col4.innerHTML = 'some text';           
            col5.innerHTML = 'some text';
            table.insertAdjacentElement('beforeEnd', row);
            counter++;
        }

所以现在我some text在 2-5 列中添加具有值的行,并drop down list在第一列中添加按钮作为表单。



但是每当我提交表单时,页面都会重新加载,因此我的JavaScript功能不再存在,结果我得到的页面与我之前打开的页面完全相同,并且我添加的行消失了。

是否可以提交表单并且不会失去JavaScript功能的影响?

4

5 回答 5

1

您可以考虑使用 AJAX 提交表单: http: //www.malsup.com/jquery/form/

这样,您可以使用表单中的数据执行一些操作,并向用户提供反馈,而无需触发整页刷新。

于 2013-03-28T08:39:34.167 回答
1

我认为您对 PHP/Javascript 的所有可能性感到迷茫。

要更新您向用户显示的内容,即使您想使用用户在表单中输入的数据,也无需提交表单。可以使用 Javascript 来完成(无需重新加载页面):

var userInput = document.getElementById('userInput').value;

现在,如果您想提交表单以在 PHP 中获取和使用用户输入(例如更新数据库......),您可以提交表单,当您重新显示它时(页面重新加载后),使用以前的用户输入。做这样的事情:

echo '<input type="text" name="userInput" value="'.$_POST['userInput'].'">';
于 2013-03-28T09:21:17.073 回答
0

要么取消按钮单击的默认行为,要么将其从 an 更改<input type="submit"><input type="button">or <button>(两者都没有默认行为)。

于 2013-03-28T08:40:17.920 回答
0

如果您添加return false;到提交表单时调用的函数,它将阻止表单提交。

function createRow(){
    /*Code*/
    return false;
}
于 2013-03-28T08:40:34.867 回答
0
    table.insertAdjacentElement('beforeEnd', row);
    counter++;
    return false;
}

额外的return false;使它不会像通常那样提交表单。

于 2013-03-28T08:40:44.587 回答