1

関数内で特定のことを実行するために、特定のボタンが押されたかどうかを尋ねる方法があるかどうか疑問に思いました。これを2つの別々の関数に分割できることは知っていますが、この方法を知りたいと思います。

以下にコードを配置します。

function displaySort(form) {
    var list = form.values.value.replace(/\s+/g, '')
    list = list.split(/,/)
    if (document.getElementById("fSort").form.input.id) {
        list.sort()        
        var listAsString = list.join(", ")
        form.sortedDisplay.value = listAsString
    } else if (document.getElementById("rSort").form.input.id) {
        list.sort(reverseCompare)
        var listAsString = list.join(", ")
        form.reverseSortedDisplay.value = listAsString
    }
    window.alert("Messed Up"); 
}

function reverseCompare(s1, s2) {
    if (s1 < s2) {
        return +1
    } else if ( s1 == s2 ){
        return 0
    } else {
        return -1
    }
}

フォーム:

<form>
    <table>
        <tr>
            <td>
                <input type="text" name="values" value="   Bob,  Ted,  Carol,           
                Bette, Alice,  Peter   "
                onclick="if (this.value == this.defaultValue) this.value=''"
                size="80"
                />
                <input type="button"
                onclick="displaySort(this.form)"
                value="Sort"
                id="fSort"
                />
                <input type="button"
                onclick="displaySort(this.form)"
                value="Reverse Sort"
                id="rSort"
                />
                <input type="reset"
                value="Reset Form"
                />
            </td>
        </tr>
        <tr>
            <td>
                <input type="text" name="sortedDisplay" value="Sorted list will show here"
                size="35"
                readonly
                style="font-size:24pt;font-weight:normal;"
                />
            </td>
        </tr>
        <tr>
            <td>
                <input type="text" name="reverseSortedDisplay" 
                value="Reverse sorted list will show here"
                size="35"
                readonly
                style="font-size:24pt;font-weight:normal;"
                />
            </td>
        </tr>
    </table>
</form>
4

1 に答える 1

2

機能ボタンに別のパラメーターを追加します。

function displaySort(form, button)
{ ...

そして、クリックされたときにボタン参照を渡します。

<input type="button"
   onclick="displaySort(this.form, this)"
   value="Reverse Sort"
   id="rSort"
/>
于 2013-02-25T18:21:45.903 に答える