Выглядит нормально, кроме случаев, когда вы устанавливаете значение # tb2.Я думаю, что вы хотите:
$('#tb2').html(Text);
Конечно, помните, так как вы вызвали toLowerCase, вам не нужно заменять символы в верхнем регистре.Скорее более простое регулярное выражение:
Text = Text.replace(/[^a-z0-9]+/g,'-');
Если вы также хотите обновить поле редактирования в качестве пользовательских типов, вот полный пример.Обратите внимание, что он обновит только # td2, когда вы начнете печатать.
<html>
<head>
<script src="js/jquery.js" ></script>
<script language="javascript">
$(function() {
$('#tb1').keyup(function() {
var Text = $('#tb1').val();
Text = Text.toLowerCase();
Text = Text.replace(/[^a-z0-9]+/g,'-');
$('#tb2').html(Text);
$('#tb1').val(Text);
});
});
</script>
</head>
<body>
<input type="text" id="tb1" value="Ruddy's Cheese Shop" />
<div id="tb2"></div>
</body>
</html>