我在使用一些 javascript 以及它如何控制 html“文本框”时遇到了一些问题。
首先,这就是我所拥有的;javascript:
function UpdateOrder()
{
// enable/disable appropriate buttons
document.getElementById("reset").disabled=false;
document.getElementById("add").disabled=false;
document.getElementById("submit").disabled=false;
document.getElementById("edit").disabled=false;
document.getElementById("update").disabled=true;
// Show display box, 'DispCurOrder'
document.getElementById('all_labels').disabled=true;
}
function EditOrder()
{
// enable/disable appropriate buttons
document.getElementById("reset").disabled=true;
document.getElementById("add").disabled=true;
document.getElementById("submit").disabled=true;
document.getElementById("edit").disabled=true;
document.getElementById("update").disabled=false;
document.getElementById('all_labels').disabled=false;
}
这个想法很简单......我有一些按钮和输入来生成一个'行'的文本,这些文本会被转储到禁用的文本框中。如果操作员注意到他们做了一个 type-o 或想要更改某些内容,他们点击“编辑订单”,它会禁用所有常规按钮,并启用文本框和“更新”按钮。“更新顺序”按钮可以逆转这一点。
现在,当我只使用在文本框中添加行时,一切正常。您可以看到每一行都附加到文本框(还有另一个 java 函数可以执行一堆错误检查等,但关键是它获取文本框的内容,将其解析为“\n”数组,然后附加新的文本行。然后它获取数组并将其作为一个新字符串放在一起,然后将其放回文本框中。这是没有所有错误检查内容的部分;
function AppendOrder()
{
// let's set up an error flag.
var AppendError="";
var str1=document.forms["MyForm"].DataEntry1.value;
var str2=document.forms["MyForm"].DataEntry2.value;
if( /* checking variable str1 for errors */)
{
AppendError="Error in str 1 here";
}
if( /* checking variable str1 for errors */)
{
AppendError=AppendError+"Error in str 2 here";
}
// Display the error message, if there are no errors, it will clear what was there.
$('#AppendStatus').html(AppendError);
if(AppendError=="")
{
// it's all good, update the display
// create line of text
curEntry=str1 + " -- " + str2;
// let's get the current order into a list
str=document.getElementById('all_data').innerHTML;
if(str1=="Empty")
{
// make curOrder = to 1 element array of curEntry
var curOrder=[curEntry];
}
else
{
// parse str1 into an array and parse it to curOrder.
// Then push curEntry on the end.
var curOrder=str1.split("\n");
curOrder.push(curEntry);
}
// now we should have an array called 'curOrder[]'. Let's show it
// on the web page.
$('#all_labels').html(curOrder);
}
}
现在,我遇到的问题是,在我使用“添加”按钮向显示器添加一两行(或更多)然后进入“编辑”模式(启用文本框)之后,我进行所有更改,“添加”按钮不起作用。
奇怪的是,当我按下“重置”按钮(这只是一个重置按钮)时,它会显示我在编辑后所做的所有添加,而编辑过的东西就消失了。
现在......问题......我对文本框有什么不理解的地方吗?我需要做一些技巧来让它工作吗?我对这一切都错了吗?我应该为此使用“文本框”以外的其他工具吗?
任何帮助是极大的赞赏!!
格雷格