我是使用任何语言进行编码的新手,现在正在使用HTML,PHP和JavaScript工作(尝试)。我的难点是通过JavaScript文件中的警报显示来自HTML文件的textarea中的信息。 HTML代码是这样的:
<head>
<title> My Form</title>
<script type= "text/javascript" src ="./JavaScript/validaLinha.js"></script>
</head>
<body>
<form name="Linhas" method="POST" action="Linhas-p.php">
<textarea name="descricaoLinha" onFocus="resetField('descricaoLinha')"> TEXT-TEXT-TEXT</textarea>
</form>
</body>
正如您在HTML代码中看到的,我尝试将textarea的名称发送到名为“resetField”的JavaScript函数。让我们看看“resetField”的作用:
function resetField(field){
d = document.Linhas;
alert("It's entering the function."); //ANSWER = It's entering the function.
alert(field); //ANSWER = descricaoLinha
alert(d.field.value); //ANSWER = Nothing.
alert(d.getElementById(field).value); //ANSWER = Nothing.
}
我无法获取设置为textarea值的信息!该事件正在调用该函数(第一个警报显示),该函数正在接收该字符串(第二个警报显示文本区域的名称),但是我需要的其他两个没有显示。我已经尝试更改警报的顺序,因为如果出现错误,那些不会继续读取代码的JavaScript内容。
只是为了强调,我想要文本区域中的内容。 (正确接收它的名称)
感谢阅读!抱歉我的英语。 ^^
答案 0 :(得分:5)
在您的textaea
中添加ID
<textarea id="descricaoLinha" name="descricaoLinha" onFocus="resetField('descricaoLinha')"> TEXT-TEXT-TEXT</textarea>
然后,发送ID
代替 name
alert(d.getElementById(field).value);
此代码找不到元素 descricaoLinha ,因为它搜索的元素具有 ID =“ descricaoLinha ”
答案 1 :(得分:2)
您的“字段”只是一个字符串,而不是javascript对象,当然它没有name
属性;
它类似于d = document.linha;
您必须通过其id
属性获取DOM元素:
d = document.getElementById(“Linha”);
修改:您还需要将id属性添加到您的字段
<textarea id="descricaoLinha" name="descricaoLinha" onFocus="resetField('descricaoLinha')"> ...
一种解决方案是:将JavaScript函数更改为
function resetField(fieldId) {
var field = document.getElementById(fieldId);
alert(field); // object
alert(field.value); // text field value
// Do whatever you want with the field object here
}
您应该打开控制台并使用console.log('output')
而不是使用alert()
进行调试;
您可以通过 Ctrl + Shift + K
答案 2 :(得分:0)
您应该在this
处理程序中传递onfocus
:
onFocus="resetField(this);"
访问它:
alert("It's entering the function.");
alert(field.name);
alert(field.value);
这是一个演示:http://jsfiddle.net/RbUZr/