猿问

我需要帮助为 html 文本字段创建动态值属性

我正在寻找一个非常特殊的主题的帮助。我正在尝试使用 更改文本字段内的默认值document.getElementById,但是我运气不佳。


我在脚本下面描述了 $name 的原因是因为整个事情都在一个 for 循环中以创建这些名称的列表。当它调用函数时,查找元素 ID 没有问题,因为它们已经创建。


这段代码混合使用了 php 和 html(你会看到一个$dataarray[$i]['AI'],这是一个自动递增的数字,用于指向正确的信息):


<?php

    $name = "";

if($owner == 1)

{

    $btnEdit = '<span id="btnEdit'.$dataarray[$i]['AI'].'"><button type="button" onclick="EditName('.$dataarray[$i]['AI'].', \''.$dataarray[$i]['lastname'].'\', \''.$dataarray[$i]['firstname'].'\');">Edit Name</button></span>';

    ?><script>

    function EditName(logai, lastname, firstname)

    {

        window.stop();

        var btnEditID = "btnEdit" + logai;

        var editNameID = "editName" + logai;

        document.getElementById(editNameID).innerHTML = '<input type="text" id="Lname" value="'+lastname+'" size="10">, <input type="text" id="Fname" value="' + firstname + '" size="10">';

        document.getElementById(btnEditID).innerHTML = '<button type="button" onclick="SubmitName('+logai+', \''+lastname+'\', \''+firstname+'\');">Submit Name</button>  <button type="button" onclick="CancelEdit(\''+btnEditID+'\', \''+editNameID+'\', '+logai+', \''+lastname+'\', \''+firstname+'\');">Cancel Edit</button><br>';

  

进度顺序如下:


1)在名称文本字段中看到名称弹出,旁边有一个编辑按钮


2)注意名称拼写错误,所以点击编辑按钮


3)点击编辑按钮,它变成2个按钮(一个提交按钮和一个取消按钮),而名称字段变成两个用逗号分隔的文本字段(姓氏,名字方向)


4) 在文本字段中输入您想要的更改,然后单击提交按钮


5)提交按钮从两个文本字段中获取新文本并更新给定ai位置的名称(这是我遇到问题的地方;它没有在姓氏,名字字段中输入新内容)


6)页面重新加载做了几件事:更新填写的信息,重置字段布局,以及“打开”页面的自动刷新(我location.reload()评论过看到它在ajax上返回的消息;这只是一个通过/失败消息)


(注意:如果有一个段落放错了地方,我很抱歉,我有点时间紧张,今天早上我没有足够的时间检查文学敏感性)


哔哔one
浏览 93回答 2
2回答

白板的微信

document.getElementById()函数的参数必须是字符串,但您为其提供了未定义的变量。lastname&nbsp;=&nbsp;document.getElementById('Lname').value; firstname&nbsp;=&nbsp;document.getElementById('Fname').value;

叮当猫咪

更新:输入document.getElementById(Lname)并Lname进入开发工具的控制台后,我有一个想法:如果我将 lastname & firstname 设置为Lname.value&会发生什么Fname.value?发生的事情是它解决了我的问题(我的同事是让我想到它的人,因为他想看看在控制台中键入 getElementById 会做什么)。这可能是导致它的范围问题,但这绝对是人们应该从我的错误中采取的一步:如果在按文档搜索时元素返回为 null,请尝试查看浏览器控制台中的值。如果有些事情不适合您,请尝试向内迈出一步。
随时随地看视频慕课网APP
我要回答