Javascript数组就是不工作?

Javascript数组就是不工作?,javascript,arrays,Javascript,Arrays,编辑以包含更多代码和新信息 <asp:Table ID="Table1" runat="server" BorderWidth="2px" CellSpacing="2" GridLines="Both" Width="465px"> <asp:TableRow ID="labelRow0" runat="server"> <asp:TableCell runat="server">Name</asp:TableCell>

编辑以包含更多代码和新信息

<asp:Table ID="Table1" runat="server" BorderWidth="2px" CellSpacing="2" GridLines="Both" Width="465px">
    <asp:TableRow ID="labelRow0" runat="server">
        <asp:TableCell runat="server">Name</asp:TableCell>
        <asp:TableCell runat="server">Address</asp:TableCell>
    </asp:TableRow>
    <asp:TableRow ID="inputRow0" runat="server">
        <asp:TableCell ID="inputName" runat="server">
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></asp:TableCell>
        <asp:TableCell ID="inputAddress" runat="server">
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></asp:TableCell>
    </asp:TableRow>
    <asp:TableRow ID="labelRow1" runat="server">
        <asp:TableCell runat="server">Favourite Colour</asp:TableCell>
        <asp:TableCell runat="server">Favourite Number</asp:TableCell>
    </asp:TableRow>
    <asp:TableRow ID="inputRow1" runat="server">
        <asp:TableCell ID="inputColour" runat="server">
            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox></asp:TableCell>
        <asp:TableCell ID="inputNumber" runat="server">
            <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox></asp:TableCell>
    </asp:TableRow>
</asp:Table>
<asp:Button ID="buttonScramble" runat="server" Text="Scramble Info" onClientClick="return buttonScramble()" />
</div>

<script>
function buttonScramble() {
    var name = document.getElementById("TextBox1").value;
    var address = document.getElementById("TextBox2").value;
    var colour = document.getElementById("TextBox3").value;
    var number = document.getElementById("TextBox4").value;
    alert(name, address, colour, number);

    var arr = [name, address, colour, number];
    alert(arr[0]);
    //alert(arr[0], arr[1], arr[2], arr[3]);
    arr.shuffle(arr);
    alert(arr[0], arr[1], arr[2], arr[3]);
    document.getElementById("TextBox1").value = arr[0];
    document.getElementById("TextBox2").value = arr[1];
    document.getElementById("TextBox3").value = arr[2];
    document.getElementById("TextBox4").value = arr[3];
    }

名称
地址
喜爱的颜色
最喜欢的号码
函数按钮扫描(){
var name=document.getElementById(“TextBox1”).value;
var address=document.getElementById(“TextBox2”).value;
var color=document.getElementById(“TextBox3”).value;
var编号=document.getElementById(“TextBox4”).value;
警报(名称、地址、颜色、编号);
var arr=[名称、地址、颜色、编号];
警报(arr[0]);
//警报(arr[0]、arr[1]、arr[2]、arr[3]);
arr.shuffle(arr);
警报(arr[0]、arr[1]、arr[2]、arr[3]);
document.getElementById(“TextBox1”).value=arr[0];
document.getElementById(“TextBox2”).value=arr[1];
document.getElementById(“TextBox3”).value=arr[2];
document.getElementById(“TextBox4”).value=arr[3];
}

“警报(arr[0]);”代码行从不触发。检查过姓名、地址等的值后。。变量,它们没有被正确分配。这也可以解释为什么数组分配不正确。

ASP.NET Web表单网络控件因
而臭名昭著。)



…但这意味着在页面上的每个控件上设置该属性。

可能是这样的,您可以像这样将值包装到对象中

但请确保来自dom的所有值都不是未定义或null

var arr = [{value:name}, {value:address}, {value:colour}, {value:number}]; 
console.log(arr[0]["value"]);
这个呢

<button ID="buttonScramble" onClick="buttonScramble()">Scramble Info</button>
加扰信息

以JavaScript对象文字为例,我假设您的代码能够很好地呈现并交付给Xhtml 客户端,ID TextBox1和TextBox2被分配给输入/表单元素

例如:

function exec() {
  var name = 'answer';

  var object_literal = {
      name: document.getElementById('TextBox1').value, 
      street: document.getElementById('TextBox2').value,
      answer: name
  };
  alert(object_literal.name);
  alert(object_literal.street);
  alert(object_literal.answer);
}

exec();

如果
document.getElementById(“TextBox1”)
不存在,则
document.getElementById(“TextBox1”).value
将创建一个错误,警报将不会运行。您确定所有的TextBox都存在吗?ID存在?请尝试在Try catch中包装此块,并查看错误…是否在某处调用此函数?此外,您还缺少右大括号。它肯定会被调用,因为放置在阵列上方的任何警报都会被调用。我要检查文本框的值,我想不出有什么理由它们会被破坏,但我遇到了更奇怪的事情。添加某种客户端ID标记可以解决它吗,我记得在网上看到过类似的情况。@SpaceOstrich我修改了我的答案,提到
clientmode
。客户端模式解决了它,我在表单上没有足够的控件,因此进行更改非常简单,而且我不需要切换到输入类型Text,这可能会在其他具有相同问题的程序中导致问题。谢谢
var arr = [{value:name}, {value:address}, {value:colour}, {value:number}]; 
console.log(arr[0]["value"]);
<button ID="buttonScramble" onClick="buttonScramble()">Scramble Info</button>
function exec() {
  var name = 'answer';

  var object_literal = {
      name: document.getElementById('TextBox1').value, 
      street: document.getElementById('TextBox2').value,
      answer: name
  };
  alert(object_literal.name);
  alert(object_literal.street);
  alert(object_literal.answer);
}

exec();