5

我是 Javascript 的新手,并试图更好地理解它。我有一个由 php 生成的表单,使用来自 POST 的数据。该表单有一些隐藏的表单字段,应该在验证后填充值。

相关的html代码:

<form action="" method="post" name="FormProcessor">
<b>Domain Name: </b>
<input type="text" name="MAIN_DOMAINNAME" value="" id="DomainField">
<input type="hidden" name="CONF_FILE" value="" id="ConfFile">
<div id="infomsg">

Javascript代码:

$(document).ready (function()
{
    $('#DomainField').blur(function() {
        var DomField=$("#DomainField");
        var DomText=DomField.val();     
        var fold="/var/lib/bind/db.";
        alert(fold+DomText);
        var ConfFile=$("#ConfFile");
        ConfFile.val(fold+DomText);
        ConfFile.show();
    });
});

<input>当前一个字段的焦点丢失时,我试图让第二个字段“不隐藏”。该函数被执行,并显示警报。

在检查来源时,我可以看到它显示:

<input type="hidden" id="ConfFile" value="/var/lib/bind/db.g.com" name="CONF_FILE" style="display: inline;">

所以这个值被传播了,所以我确实正确地处理了这个对象。为什么不显示?

4

5 回答 5

11

隐藏的输入字段应该保持隐藏。

我认为您想要做的是使用文本类型的普通输入字段并使用 css 隐藏它。然后你就可以像现在这样使用 jQuery 来展示它了。

如果您将隐藏字段替换为:

<input type="text" name="CONF_FILE" value="" id="ConfFile" style="display:none">
于 2013-07-24T06:59:04.233 回答
2

usingshow()仅将显示属性设置为可见的东西,但由于输入具有隐藏类型,它仍然不会显示,您必须实际更改类型:

$(document).ready (function() {
    $('#DomainField').on('blur', function() {
        var DomField = $("#DomainField");
        var DomText  = DomField.val();     
        var fold     = "/var/lib/bind/db.";
        var ConfFile = $("#ConfFile");
        ConfFile.val(fold+DomText).prop('type','text');
    });
});
于 2013-07-24T06:58:18.170 回答
1

根据您的代码input type是隐藏的,即使show强制执行也不会显示相同的内容,因为hidden具有隐藏控件存在的属性。所以您需要更改您的input type.

你可以替换你的隐藏

<input type="hidden" id="ConfFile" value="/var/lib/bind/db.g.com" name="CONF_FILE" style="display: inline;">

<input type="text" id="ConfFile" value="/var/lib/bind/db.g.com" name="CONF_FILE" style="display: none;">

或者

<input type="label" id="ConfFile" value="/var/lib/bind/db.g.com" name="CONF_FILE" style="display: none;">
于 2013-07-24T07:01:03.373 回答
0

您应该在显示之前将属性从更改hiddentext

 ConfFile.attr('type', 'text');
 ConfFile.show();
于 2013-07-24T06:57:22.153 回答
-1

使用代码隐藏

$(document).ready(function () {
$('#ConfFile').hide();$('#ConfFile').show();
});
于 2015-10-19T12:41:58.120 回答