预填充字段值和只读

时间:2013-02-08 01:04:17

标签: javascript

我有一个包含多个字段的表单,我需要使用javascript自定义一些字段,以便我:

  1. 为“city”字段预填“New York”值

  2. 将字段“email”设为只读

  3. 预填充并且只读字段“country”

  4. 为了得到第1点的结果,我使用了这个效果很好的代码:

    <script type="text/javascript">function on_form_loaded(event) {
    if (event=='reserve')
    document.getElementById('city').setAttribute("value", "New York");
    }</script>
    

    为了得到第2点的结果,我使用了这个效果很好的代码:

    <script type="text/javascript">function on_form_loaded(event) {
    if (event=='reserve')
    document.getElementById('email').readOnly=true;
    }</script>
    

    但是现在我没有看到如何“混合”预填充/只读参数以获得第3点的结果。

    有人可以帮忙吗?

    此外,我想缩短代码,以避免为每个字段包含一个javascript。我做了一些测试但没有成功。如果你能给我一些例子......

2 个答案:

答案 0 :(得分:1)

我不确定你错过了什么,但试试这个

var country = document.getElementById('country');
country.value = "USA";
country.readOnly = true;

如上面评论中提到的jimjimmy1985,您也可以在标记中执行此操作

<input name="country" id="country" value="USA" readonly>

答案 1 :(得分:0)

假设您正在使用&#39; on ... =&#34; on_form_loaded&#34;&#39;作为表单标记中的属性并且添加jQuery没有问题,您可以尝试:

<script type="text/javascript">
jQuery('#ID_OF_YOUR_FORM').ready( function(event) {
 if (event=='reserve') {
    var form_object = jQuery(this);
    form_object.find('#city').value('New York').end()
               .find('#country').value('USA').end()
               .find('#country, #email').attr('readonly', true);      
  }
});
</script>

ID_OF_YOUR_FORM必须由您的表单个人ID替换。