Как добавить идентификатор для ввода? - PullRequest
0 голосов
/ 08 июня 2009

Моя CMS очень старая.

Это дает следующий HTML. Я хочу добавить идентификатор для каждого ввода и имя идентификатора, который представляет собой текст из предыдущего тд, например, navn, e-po, hjem и т. Д. Идентификатор может быть 4 буквы.

Я попробовал этот код, но он дает только id = "----" для каждого ввода.

<script type="text/javascript">
$(document).ready(function(){
$('table tr').each(function(){
var formid=$('td:first', this).text().toLowerCase().slice(0,4);
$('input', this).attr('id', function() {
return formid});     
});
});
</script>

По сути, я пытался это сделать. Для каждого тр. установить переменную formid в первый тд, получить текст и перейти в нижний регистр с четырьмя буквами. И найдите этот ввод и добавьте id этого formid.

(ДОПОЛНЕНО) После двух ответов я попробовал следующее.

$(document).ready(function() { 
$('table input').each(function() { 
var formid=$(this).parents('td').prev().text().toLowerCase();
alert (formid);
});
});

Это предупреждает navn :, e-post :, hjemmeside: и sak:.

Пока все хорошо. Но когда я использую следующее, это ничего не предупреждает. Я хочу вынуть: из каждой строки.

$(document).ready(function() { 
$('table input').each(function() { 
var formid=$(this).parents('td').prev().text().toLowerCase();
var inputid=formid.slice(0,5);
alert (inputid);
});
});

Может кто-нибудь помочь мне, пожалуйста?

Заранее спасибо.

<TABLE CELLSPACING="0" CELLPADDING="2" BORDER="0">
<TR>
<TD> Navn: </TD>
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Namn" VALUE="" MAXLENGTH="50">
</TD>
</TR>
<TR>
<TD> E-post: </TD>
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Epost" VALUE="" MAXLENGTH="50">
</TD>
</TR>
<TR>
<TD> Hjemmeside: </TD>
<TD>    <INPUT TYPE="text" CLASS="input-style" NAME="Hemsida" VALUE="http://"  MAXLENGTH="50">
</TD>
</TR>

<TR>
<TD> Sak: </TD>
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Arende" VALUE="" MAXLENGTH="50">
</TD>
</TR>

<TR>
<TD> Telefon:
</TD>
<TD><INPUT TYPE="text" CLASS="input-style" NAME="Telefon" VALUE="" MAXLENGTH="50">
</TD>
</TR>

<TR>
<TD>
Tekst:
</TD>
<TD>
<TEXTAREA NAME="Innehall" ROWS="5" COLS="42"></TEXTAREA>
</TD>
</TR>
<TR>

....
....
....


</TD>
</TR>
</TABLE>

Ответы [ 2 ]

0 голосов
/ 08 июня 2009

Я думаю, что лучше начать с элементов ввода и переходить оттуда.

Также хорошей идеей будет удалить все знаки препинания и другие не-буквенные символы из текста перед установкой идентификатора:

$(document).ready(function() { 
  $('table input').each(function() { 
      var formid=$(this).parents('td').prev().text().match(/[a-zA-Z]{,4}/);
      $(this).attr("id",formid);
  });
});
0 голосов
/ 08 июня 2009

Я немного переписал функцию, чтобы она работала только с элементами ввода:

$(document).ready(
    function () { 
        $('input').each(
            function () {
                // *this* refers to the current input-element
                var labelTd = $(this).parent().prev(),
                    label = $(labelTd).text(),
                    shortLabel = label.slice(0,4);
                // Set the id-attribute of the input element to the sliced
                // text content of the label
                $(this).attr('id', shortLabel);                    
        });
     }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...