javascript - 避免在第一次更改后更改选择标签

标签 javascript jquery html

假设我有以下选择标签:

<select id="select_val">
<option>This is first</option>
<option>This is second</option>
</select>

现在我想要的是,我希望选择存在,但我们不应该能够进一步更改它。 例如,如果他选择选项二,即这是第二个,他不能进一步更改它。我怎样才能使用 jquery 做到这一点?提前致谢

最佳答案

$('#select_val').change(function(){
    $(this).prop('disabled', true);
})

评论后编辑:

如果您想传递所选值并保持选择禁用,有多种解决方案。现在这取决于您是否使用 AJAX 或者只是简单的表单提交。 对于 AJAX 你可以这样做:

$('form').submit(functiom(){
    $('#select_val').prop('disabled', false);
    var data = $(this).serialize();
    $('#select_val').prop('disabled', true);

    $.ajax({
        url : 'some_url',
        data : data
        // ... other parameters here
    });
});

如果是简单的表单提交,那么我不会将禁用切换为关闭,因为用户可以通过按转义键停止发送表单,然后更改选择。然后另一种方法可以创建隐藏输入,例如:

$('form').submit(functiom(){
    var select = $('#select_val');
    $(this).append('<input type="hidden" name="'+ select[0].name +'" value="'+ select.val() +'">');
});

关于javascript - 避免在第一次更改后更改选择标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389510/

相关文章:

javascript - Auth0.js : Is there a way to silently replace a google access_token into an auth0 access_token?

JavaScript 时钟问题

javascript - 在表格中显示结果

javascript - jQuery UI 可拖动 - 滚动垂直和水平问题

php - 如果单击浏览器按钮,如何在服务器端显示消息

javascript - 将缩略图添加到 ResponsiveSlides.js

javascript - jQuery:IF 语句中的 addClass 不切换

javascript - 如何使 Javascript 日期和 CSS3 动画协同工作?

html - IE10 - 使用 flexbox 在 div 中垂直居中多行文本时出现问题

javascript - 如何使用两个按钮启动和停止执行 JavaScript 脚本?