javascript按钮不更新文本框的html值

时间:2014-07-15 18:12:11

标签: javascript html model-view-controller textbox

我仍然是JS的新手,并且在更新文本框的值时遇到问题,因此它将值传递给MVC模型。目前代码半工作,并且我的意思是,当您单击按钮时,它更新文本而不是值,因此不正确的值将传递给我的模型。让我们希望我不要在清理过程中搞砸这个帖子。 :)代码的HTML端看起来像这样:

    <tbody>
        <tr class="manageItems-spacer" />
        <tr>
            <td>
                @Html.LabelFor(x => x.DefaultItem)
                @if(Model.DefaultItem != null)
                { 
                    @Html.TbbTextBoxFor(x => x.DefaultItem, new { disabled = "disabled" })
                    @Html.HiddenFor(x => x.DefaultItem);
                }
            </td>
        </tr>
        <tr>
            <td>
                @Html.ListBox("AssignedItems", new MultiSelectList(Model.Items, "Id", "FriendlyDisplay"), new { @size = 5 })
            </td>
        </tr>
        <tr>
            <td>
                <button type="button" onclick="javascript:editItem.setDefault()")>Set Default</button>
            </td>
        </tr>
    </tbody>

以下是视图源HTML:

<table class="manageItems">
    <thead>
        <tr>
            <th>Items</th>
        </tr>
    </thead>
    <tbody>
        <tr class="manageItems-spacer" />
        <tr>
            <td>

                <label for="DefaultItem">Default Item</label>
        <input disabled="disabled" id="DefaultItem" name="DefaultItem" type="text" value="1234" />
        <input id="DefaultItem" name="DefaultItem" type="hidden" value="1234" />                
    </td>
        </tr>
        <tr>
            <td>
                <select id="AssignedItems" multiple="multiple" name="AssignedItems" size="5">
            <option value="1">8526</option>
            <option value="2">1234</option>
            <option value="11">9988565</option>
        </select>
                <span class="field-validation-valid" data-valmsg-for="AssignedItems" data-valmsg-replace="true"></span>
            </td>
        </tr>
        <tr>
            <td>
                <button type="button" onclick="javascript:editUser.setDefault()" >Set Default</button>
            </td>
        </tr>
    </tbody>
</table>

以下是它调用的setDefault按钮的代码:

this.setDefault = function () {
    var selectedItem = $("#AssignedItems option:selected").text();

    document.getElementById("DefaultItem").innerHTML = selectedItem;
    document.getElementById("DefaultItem").value = selectedItem;
};

对于甚至从HTML视图传递给控制器​​的值,我必须在HTML中添加HiddenFor代码,否则它将传递空值。我在搜索网络后尝试的其他事情是添加.innerHTML来更新值,但它也不起作用。我也发现帖子谈论添加window.onload,但我也无法让它正常工作。

非常感谢有关此问题的任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

解决方案:删除已禁用并将其更改为只读,我现在可以设置该值。