我正在用JavaScript进行搜索。我会使用一个表单,但它在我的页面上搞砸了其他东西。我有这个输入文本字段:

<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>

这是我的JavaScript代码:

<script type="text/javascript">
  function searchURL(){
    window.location = "http://www.myurl.com/search/" + (input text value);
  }
</script>

我如何从文本字段的值变成JavaScript?


当前回答

有多种方法可以直接获取输入文本框的值(不需要将输入元素包装在表单元素中):

方法1

. getelementbyid(“textbox_id”)。值来获取的值 需要盒子

例如

document.getElementById(“searchTxt”).value;

  注意:方法2、3、4和6返回元素的集合,因此使用[whole_number]来获得所需的出现。对于第一个元素,使用[0], 对于第二个,使用[1],以此类推……

方法2

使用 document.getElementsByClassName (class_name) [whole_number]。返回一个Live HTMLCollection的值

例如

document.getElementsByClassName(“searchField”)[0]。value;如果这是页面中的第一个文本框。

方法3

使用document.getElementsByTagName (tag_name) [whole_number]。值,它也返回一个实时的HTMLCollection

例如

document.getElementsByTagName("input")[0].value;,如果这是页面中的第一个文本框。

方法4

document.getElementsByName(“名字”)[whole_number]。>返回一个活的节点列表

例如

document.getElementsByName(“searchTxt”)[0]。value;如果这是您页面中第一个名称为“searchtext”的文本框。

方法5

使用功能强大的document.querySelector('selector')。值,它使用CSS选择器选择元素

例如

document.querySelector value(“# searchTxt”);按id选择 document.querySelector value(“.searchField”);按班级选择 document.querySelector value(“输入”);由tagname选择 document.querySelector ([name = " searchTxt "]) value;按名称选择

方法6

document.querySelectorAll(“选择器”)[whole_number]。值,它也使用CSS选择器来选择元素,但它以静态节点列表的形式返回该选择器的所有元素。

例如

document.querySelectorAll (# searchTxt) [0] value;按id选择 document.querySelectorAll(“.searchField”)[0]。value;按班级选择 document.querySelectorAll(“输入”)[0]。value;由tagname选择 document.querySelectorAll(“[name = " searchTxt]”)[0]value;按名称选择

支持

Browser Method1 Method2 Method3 Method4 Method5/6
IE6 Y(Buggy) N Y Y(Buggy) N
IE7 Y(Buggy) N Y Y(Buggy) N
IE8 Y N Y Y(Buggy) Y
IE9 Y Y Y Y(Buggy) Y
IE10 Y Y Y Y Y
FF3.0 Y Y Y Y N IE=Internet Explorer
FF3.5/FF3.6 Y Y Y Y Y FF=Mozilla Firefox
FF4b1 Y Y Y Y Y GC=Google Chrome
GC4/GC5 Y Y Y Y Y Y=YES,N=NO
Safari4/Safari5 Y Y Y Y Y
Opera10.10/
Opera10.53/ Y Y Y Y(Buggy) Y
Opera10.60
Opera 12 Y Y Y Y Y

有用的链接

要查看这些方法对所有错误的支持,包括更多详细信息,请单击这里 静态集合和动态集合的区别点击这里 NodeList和HTMLCollection的区别点击这里

其他回答

我们可以使用这种形式。元素来获取表单中的所有元素。如果一个元素有id,它可以用. nameditem ("id")找到。例子:

var myForm = document.getElementById("form1");
var text = myForm.elements.namedItem("searchTxt").value;
var url = "http://www.myurl.com/search/" + text;

来源:w3schools

//creates a listener for when you press a key
window.onkeyup = keyup;

//creates a global Javascript variable
var inputTextValue;

function keyup(e) {
  //setting your input text to the global Javascript Variable for every key press
  inputTextValue = e.target.value;

  //listens for you to press the ENTER key, at which point your web address will change to the one you have input in the search box
  if (e.keyCode == 13) {
    window.location = "http://www.myurl.com/search/" + inputTextValue;
  }
}

请在代码依赖中查看此功能。

你应该能够输入:

var input = document.getElementById(“searchTxt”); 函数搜索URL() { window.location = “http://www.myurl.com/search/” + input.value; } <input name=“searchTxt” type=“text” maxlength=“512” id=“searchTxt” class=“searchField”/>

我相信有更好的方法可以做到这一点,但这一方法似乎可以跨所有浏览器工作,并且它只需要对JavaScript有最少的了解就可以进行制作、改进和编辑。

function searchURL() {
   window.location = 'http://www.myurl.com/search/' + searchTxt.value
}

基本上就是searchTxt。value将返回id='searchTxt'的输入字段值。

function handleValueChange() { var y = document.getElementById('textbox_id').value; var x = document.getElementById('result'); x.innerHTML = y; } function changeTextarea() { var a = document.getElementById('text-area').value; var b = document.getElementById('text-area-result'); b.innerHTML = a; } input { padding: 5px; } p { white-space: pre; } <input type="text" id="textbox_id" placeholder="Enter string here..." oninput="handleValueChange()"> <p id="result"></p> <textarea name="" id="text-area" cols="20" rows="5" oninput="changeTextarea()"></textarea> <p id="text-area-result"></p>