我的代码中有一些输入字段需要根据单击哪个复选框来启用或禁用。在我添加th:field部分以将字段的值存储在th:object中之前,它一直运行良好。现在我的JavaScript不起作用,因此这些字段始终保持禁用状态。

这是我的html文件中的字段之一:

<div class="form-group form-inline form-xtra required">
    <label>Texto mensaje:</label>
    <div class="form-item">
        <textarea cols="200" name="seleccionExcel" class="user-form-control
        input-md" th:field="*{mensaje}" id="textoExcel" disabled="disabled">
        </textarea>
    </div>
</div>


这是JavaScript文件:

$(function() {

$(".introducirManual").click(function(){
    $('input[name="seleccionManual"]').prop('disabled', false);
    $('textarea[name="seleccionManual"]').prop('disabled', false);
    $('input[name="seleccionExcel"]').prop('disabled', true);
    $('input[name="seleccionExcel"]').val('');
    $('textarea[name="seleccionExcel"]').prop('disabled', true);
    $('textarea[name="seleccionExcel"]').val('');
});

$(".introducirExcel").click(function(){
    $('input[name="seleccionExcel"]').prop('disabled', false);
    $('textarea[name="seleccionExcel"]').prop('disabled', false);
    $('input[name="seleccionManual"]').prop('disabled', true);
    $('input[name="seleccionManual"]').val('');
    $('textarea[name="seleccionManual"]').prop('disabled', true);
    $('textarea[name="seleccionManual"]').val('');
    $('input[id="numLibreta"]').val('');
});


});

如果我删除


  th:field =“ * {mensaje}”


,脚本再次正常运行。

使用Thymeleaf时,是否应该更改引用JavaScript文件中字段的方式?

最佳答案

如下更改文本区域名称,

$('textarea[name="mensaje"]').prop('disabled', true);


属性th:field将替换输入标签中的属性值和名称。

<textarea cols="200" name="seleccionExcel" class="user-form-control  input-md" th:field="*{mensaje}" id="textoExcel" disabled="disabled"> </textarea>


上面的代码行类似于:

<textarea cols="200" name="mensaje" class="user-form-control  input-md" id="textoExcel" disabled="disabled"> </textarea>

09-20 23:56