3

我是使用任何语言编码的新手,现在我正在(尝试)使用 HTML、PHP 和 JavaScript。我的困难是通过 JavaScript 文件中的警报显示 HTML 文件中文本区域中的信息。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 内容不会继续读取代码。

只是为了强调,我想要文本区域中的内容。(它的名称正在正确接收)

谢谢阅读!对不起我的英语。^^

4

3 回答 3

5

将一个添加ID到您的 textaea

<textarea id="descricaoLinha" name="descricaoLinha" onFocus="resetField('descricaoLinha')"> TEXT-TEXT-TEXT</textarea>

然后,发送ID 代替name

alert(d.getElementById(field).value);

此代码找不到元素descricaoLinha,因为它正在搜索ID = " descricaoLinha "的元素

于 2013-06-07T01:57:37.443 回答
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()进行调试;您可以通过以下方式打开 Firefox 控制台Ctrl + Shift + K

于 2013-06-07T02:21:28.790 回答
0

你应该传入this你的onfocus处理程序:

onFocus="resetField(this);"

像这样访问它:

alert("It's entering the function."); 
alert(field.name);                       
alert(field.value);

这是一个演示:http: //jsfiddle.net/RbUZr/

于 2013-06-07T01:57:20.977 回答