0

我以前问过这个问题,并让它在 ie7 中起作用。从那以后,我们升级到 IE 8,我找不到让它工作的方法。我有一个由用户手动填写的表单,当他们单击复制时,表单会连接到一个应用了格式的文本框中。我需要格式是有条件的,所以如果表单的某些部分没有输入或留空,它们不会在格式中留下空换行符。示例表格:

<body>
<form name="data_entry" id="frm1"

<tr>
<td>Name of Person:</td>
<td><textarea name="name" rows="2" cols="30" id="name"></textarea></td>
</tr><br>

<tr>
<td>Type of Service:</td>
<td><select name="drop1" id="txt_drop1">
    <option value="">None</option>
    <option value="Type of Service: Minimal">Minimal</option>
    <option value="Type of Service: Normal">Normal</option>
    <option value="Type of Service: Full">Full</option>
    <option value="Type of Service: Premium">Premium</option>
</select></td>
</tr><br>

<tr>
<td>Dollar Amount:</td>
<td><textarea name="amount" rows="1" cols="30" id="txt_info2"></textarea></td>
</tr><br>

<tr>
<td><textarea name="bigtextbox" rows="5" cols="30" id="txt_info2"></textarea></td>
</tr>
</form>
</body>

<input type="button" style="font-weight:bold;" name="clipboard_copy" value="Copy" onClick="document.data_entry.bigtextbox.value = 'Name:&nbsp;' + document.data_entry.name.value + '\n' + document.data_entry.drop1.value + '\n' + 'Amount: $' + document.data_entry.amount.value">

</body>

如果“服务类型”值为空,我希望得到的结果是:

姓名:John Smith
金额:$123

而不是:

姓名:John Smith

金额:$123


它还需要适用于以下情况他们将任何其他字段留空。
在此先感谢,对于重复的问题,我们深表歉意!

4

2 回答 2

2

看起来你想让你的 onClick 事件clipboard_copy引用一个单独的函数。例如:

onClick="validate()"

您的函数可以使用简单的 if 语句来正确格式化输出:

function validate() {
     var value;
     if (document.data_entry.bigtextbox.value.length > 0) value += 'Name:&nbsp;' +
     document.data_entry.name.value + '\n';
     if (document.data_entry.drop1.value.length > 0) value += document.data_entry.drop1.value + '\n';
     if (document.data_entry.amount.value.length > 0) value += 'Amount: $' + document.data_entry.amount.value;

    document.data_entry.bigtextbox.value = value;
}

真正的函数比内联的 onclick 功能给你更多的力量。

于 2013-09-11T22:51:09.293 回答
1
<html>
<head>
<title>test</title>
<script type="text/javascript" language="javascript">
    function validate() {
        var value = '';

        try {
            if (document.data_entry.name.value.length > 0) {
                value += 'Name: ' + document.data_entry.name.value + '\n';
            }

            if (document.data_entry.drop1.selectedIndex > 0) {
                value += document.data_entry.drop1[document.data_entry.drop1.selectedIndex].value + '\n';
            }

            if (document.data_entry.amount.value.length > 0) {
                value += 'Amount: $' + document.data_entry.amount.value;
            }

            document.data_entry.bigtextbox.value = value;
        }
        catch (Error) {
            alert(Error);
        }
    }
</script>
</head>

<body>
<form name="data_entry" id="frm1">

<tr>
<td>Name of Person:</td>
<td><textarea name="name" rows="2" cols="30" id="name"></textarea></td>
</tr><br>

<tr>
<td>Type of Service:</td>
<td><select name="drop1" id="txt_drop1">
    <option value="">None</option>
    <option value="Type of Service: Minimal">Minimal</option>
    <option value="Type of Service: Normal">Normal</option>
    <option value="Type of Service: Full">Full</option>
    <option value="Type of Service: Premium">Premium</option>
</select></td>
</tr><br>

<tr>
<td>Dollar Amount:</td>
<td><textarea name="amount" rows="1" cols="30" id="txt_info2"></textarea></td>
</tr><br>

<tr>
<td><textarea name="bigtextbox" rows="5" cols="30" id="txt_info2"></textarea></td>
</tr>
</form>
</body>

<input type="button" style="font-weight:bold;" name="clipboard_copy" value="Copy" onClick="validate();">

</body>
</html>
于 2013-09-11T22:55:35.287 回答