所有开发者都比我聪明,
所以基本上我有一个名字(第一个)输入字段,我想让用户在输入中输入他们的名字和姓氏。之后,我想获取第二个值(姓氏)并将值推送到另一个输入hidden(display:none)
。所以理论上下面的代码应该这样做
var array = [];
var fullname = $("#firstName").value.split(" ");
array.push(fullname);
$("#lastName").value = array[1];
alert(array[1])
例如我输入" First Last"作为firstName输入中的名称值和拆分并推送到数组,如果我提醒它alert(array) or $("#lastName").value = array
,它确实会推送正确的值,但是当我尝试提醒或仅设置数组的第2部分时[1]它不断变回未定义!?请各位朋友赐教。
答案 0 :(得分:6)
首先,jQuery使用val()
方法来检索表单元素的值。试图访问value
属性将不返回任何内容。
除此之外,您的问题是因为您通过将split()
(即数组)的结果推送到array
来创建嵌套数组:
var fullname = $("#firstName").val().split(" ");
var array = [];
array.push(fullname);
console.log(array)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="firstName" value="Foo Bar" />
相反,只需直接使用split()
的结果,而无需调用push()
:
var fullname = $("#firstName").val();
var array = fullname.split(' ');
console.log(array[1]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="firstName" value="Foo Bar" />
这显然是一个基本的例子。您还需要确保生成的数组中至少包含2个元素。
答案 1 :(得分:1)
你有一些语法问题:
var array = [];
var fullname = $("#firstName").val();
array=fullname.split(" ");
$("#lastName").val(array[1]);
alert(array[1]);
答案 2 :(得分:0)
您希望将数组值推送到数组,而不是array.push(fullname);
,请使用
array.push.apply( array , fullname);
或
array = array.concat(fullName);
答案 3 :(得分:0)
在您的代码中,使用$("#lastName").val()
代替$("#lastName").value
。您正在使用array[]
而不是数组构造函数()。例如:var a = array[1]
返回1
,表示a
= 1
的值。