选择标签php生成的代码需要javascript交互

Select tag php generated code requires javascript interaction

本文关键字:javascript 交互 代码 标签 php 选择      更新时间:2023-09-26

目前我正在制作一段javascript来复制一个链接加上用户在select标签中选择的选项。

我在javascript中分配的变量仍然是未定义的。是否有一种方法使这段代码工作?我不希望使用带有循环的ID属性,除非它可以应用到我的PHP脚本中(我在其中回显选择标记,因为我正在显示数据库结果,每当显示结果时,它也将显示选择标记)。这个链接展示了我目前所做的一个简单示例:http://jsfiddle.net/b31au78v/

下面是我的代码:
<table>
    <tr>
        <th>Name</th>
        <th>Gender</th>
    </tr>
    <tr>
        <td>Hank</td>
        <td>
            <select onChange="getValue()" class="ddlEval">
                <option>Select an option...</option>
                <option val="gender.php?=male">Male</option>
                <option val="gender.php?=female">Female</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>Jeff</td>
        <td>
            <select onChange="getValue()" class="ddleval">
                <option>Select an option...</option>
                <option val="gender.php?=male">Male</option>
                <option val="gender.php?=female">Female</option>
            </select>
        </td>
    </tr>
</table>
<script>
    function getValue() {
    optVal = this.value;
    if(optVal != "Select an option...")
    {
    window.prompt("This is the link that's going to be coppied: ", "localhost:8080/" + optVal);
    }
}
</script>

我想我需要用别的东西代替"this",但这只是为了显示我实际想要发生的事情。

考虑以下方法:

var optVal = selectTag.options[selectTag.selectedIndex].value;

在您的例子中(jsFiddle):

<script>
    function getValue(s) {
    optVal = s.options[s.selectedIndex].value;
    if(optVal != "Select an option...")
    {
    window.prompt("This is: ", "localhost:8080/gender.php?=" + optVal);
    }
}
</script>

改变onChange事件代码时:

        <select onChange="getValue(this)"...

请注意,您还应该传递成员的id/名称,因此,当有人改变第一个成员的性别时,它不会与第二个成员冲突。

有两个问题:

没有val属性,应该是value:

<option value="none">Select an option …</option>
<option value="gender.php?=male">Male</option>

注意:如果没有value属性,则元素的值将是所选option元素的文本


函数中的

this具有不同的作用域,因此它不知道称为this.value的属性。但是,您可以将元素传递给函数,如:

<select onchange="getValue(this);"></select>

那么你可以得到它的值:

function getValue(e) {
    var optVal = e.value;
    if ('none' != optVal) {
        window.prompt("This is the link that's going to be coppied: ", "localhost:8080/" + optVal);
    }
}

先试后买